Проблемы с разрешениями с squid3
Я пытался заставить кальмаров работать. У меня есть конфигурация для кэша, который будет создан в каталоге /var/cache/squid3/
, Тем не менее, я получаю эту ошибку при запуске squid с тегом "-z" (это первый запуск):
WARNING: Cannot write log file: /var/log/squid3/cache.log
/var/log/squid3/cache.log: Permission denied
messages will be sent to 'stderr'.
2015/05/23 20:05:39 kid1| Creating missing swap directories
2015/05/23 20:05:39 kid1| /var/cache/squid3 exists
FATAL: Failed to make swap directory /var/cache/squid3/00: (13)
Permission denied
Squid Cache (Version 3.3.8): Terminated abnormally.
CPU Usage: 0.010 seconds = 0.007 user + 0.003 sys
Maximum Resident Size: 22560 KB
Page faults with physical i/o: 0
Я пытался это исправить, набрав sudo chmod 755 /var/cache/squid3
Однако также безуспешно.
Выход из namei -l /var/cache/squid3
является:
$ namei -l /var/cache/squid3
f: /var/cache/squid3
drwxr-xr-x root root /
drwxr-xr-x root root var
drwxr-xr-x root root cache
drwxr-xr-x root root squid3
ОБНОВЛЕНИЕ: я сделал новые каталоги в /squid3_log
а также /squid3_cache
, Я тогда выпустил для обоих:
sudo chown -R root:proxy /squid3_log #and squid3_cache
а также
sudo chmod -R 777 /squid3_log #and squid3_cache
Исправлено разрешение, запрещенное в squid3_cache, но не в squid3_log.
ОБНОВЛЕНИЕ: я попытался очистить, переустановить, перенастроить, и он работал с первого запуска squid3 -z
, Но потом, когда я запустил отладку squid3 -NCd1
, Показал:
2015/06/01 16:24:24| Starting Squid Cache version 3.3.8 for x86_64-pc-linux-gnu...
2015/06/01 16:24:24| Process ID 20379
2015/06/01 16:24:24| Process Roles: master worker
2015/06/01 16:24:24| With 65536 file descriptors available
2015/06/01 16:24:24| Initializing IP Cache...
2015/06/01 16:24:24| DNS Socket created at [::], FD 5
2015/06/01 16:24:24| DNS Socket created at 0.0.0.0, FD 6
2015/06/01 16:24:24| Adding nameserver 127.0.1.1 from /etc/resolv.conf
2015/06/01 16:24:24| Adding domain Home from /etc/resolv.conf
2015/06/01 16:24:24| Logfile: opening log /home/john/squid3_log/access.log
2015/06/01 16:24:24| WARNING: log parameters now start with a module name. Use 'stdio:/home/john/squid3_log/access.log'
2015/06/01 16:24:24| WARNING: no_suid: setuid(0): (1) Operation not permitted
2015/06/01 16:24:25| Unlinkd pipe opened on FD 11
2015/06/01 16:24:25| Local cache digest enabled; rebuild/rewrite every 3600/3600 sec
2015/06/01 16:24:25| Logfile: opening log /home/john/squid3_log/store.log
2015/06/01 16:24:25| WARNING: log parameters now start with a module name. Use 'stdio:/home/john/squid3_log/store.log'
2015/06/01 16:24:25| Swap maxSize 15360000 + 16384 KB, estimated 1182798 objects
2015/06/01 16:24:25| Target number of buckets: 59139
2015/06/01 16:24:25| Using 65536 Store buckets
2015/06/01 16:24:25| Max Mem size: 16384 KB
2015/06/01 16:24:25| Max Swap size: 15360000 KB
2015/06/01 16:24:25| Rebuilding storage in /home/john/squid3_cache (no log)
2015/06/01 16:24:25| Using Least Load store dir selection
2015/06/01 16:24:25| Current Directory is /home/john
2015/06/01 16:24:25| Loaded Icons.
2015/06/01 16:24:25| HTCP Disabled.
2015/06/01 16:24:25| Sending SNMP messages from [::]:3129
2015/06/01 16:24:25| WARNING: no_suid: setuid(0): (1) Operation not permitted
2015/06/01 16:24:25| Pinger socket opened on FD 17
2015/06/01 16:24:25| /var/run/squid3.pid: (13) Permission denied
2015/06/01 16:24:25| Closing HTTP port [::]:3128
FATAL: Could not write pid file
Aborted (core dumped)
Я использую Ubuntu 14.04 LTS (Trusty Tahr) и последнюю версию Squid3
3 ответа
squid3
работает как пользователь proxy
Таким образом, вы устанавливаете владельца пользователя (и группу) как proxy
и затем установите разрешения соответственно.
You can do the following to change recursively the owner and owner group of all files under /var/cache/squid3
пользователю proxy
и группа proxy
соответственно:
sudo chown -R proxy:proxy /var/cache/squid3
Also make sure the owner has the right permission, the permission you currently have ie 0755
Сделаю.
In your case, as you can see the directory /var/cache/squid3
is only writable by root
, hence you were getting the permission denied error.
В моем случае (Ubuntu 16.04, Squid 3.5.12) проблема заключается в стандартных правилах AppArmor и нестандартном каталоге кэша. /var/log/syslog
:
Sep 26 23:08:34 server2 kernel: [ 6458.643201] audit: type=1400 audit(1506449314.016:36): apparmor="DENIED" operation="mkdir" profile="/usr/sbin/squid" name="/BIG/squid_spool/00/00/" pid=4377 comm="squid" requested_mask="c" denied_mask="c" fsuid=13 ouid=13
Симлинки в этом случае тоже не работают.
Возможные решения:
- Изменить вариант
cache_dir
к стандарту/var/spool/squid
и не используйте символические ссылки в этом пути; Изменить файл
/etc/apparmor.d/usr.sbin.squid
и перезагрузите apparmor:sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.squid
Но у вас могут быть небольшие проблемы с обновлениями.
- Смонтировать отдельный раздел для кеша Squid.
Смените владельца на прокси для установленного каталога sudo chown proxy:proxy /usr/local/squid -R и установите пользователя прокси в squid.conf
vi /usr/local/squid/etc/squid.conf cache_effective_user proxy
Затем перезапустите Squid, проблема с отказом в разрешении исчезла и ВНИМАНИЕ: Не удается записать файл журнала, также решена.
Я проверил в Ubuntu 14.x моей системы, а затем прокомментируйте здесь