Фон: Я сделал ошибку новичка на VM Ubuntu 14.04 и рекурсивно изменил полномочия на /etc
папка. Я восстанавливал их к значению по умолчанию 1 каталог за один раз, с помощью нового VM в качестве модели и ища верные полномочия по apt-browse.org, когда файлы не существуют на 'образцовом' VM. Когда я добрался до /etc/skel
каталог, полномочия были 660 на .bash_logout
, .bashrc
, и .profile
, но согласно модели и apt-browse.org, они должны быть 644. После просмотра к /etc/skel
, Я работал sudo chmod 644 .*
и затем работал ls -la
.
От той точки вперед я больше не мог вызывать sudo, и при этом я не мог выполнить команды оболочки, включая просмотр, список файлов, и т.д. Посмотрите
x@Y:/etc/sgml$ cd /etc/skel/ && ls -la
total 28
drwxr-xr-x 2 root root 4096 Oct 10 2014 .
drwxr-xr-x 129 root root 12288 Sep 12 15:39 ..
-rw-rw---- 1 root root 220 Mar 18 2013 .bash_logout
-rw-rw---- 1 root root 3637 Apr 23 2014 .bashrc
-rw-rw---- 1 root root 675 Mar 28 2013 .profile
x@Y:/etc/skel$ sudo chmod 644 *
chmod: cannot access '*': No such file or directory
x@Y:/etc/skel$ sudo chmod 644 .*
x@Y:/etc/skel$ ls -la
ls: cannot open directory .: Permission denied
x@Y:/etc/skel$ sudo ls -la
sudo: unable to stat /etc/sudoers: Permission denied
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
x@Y:/etc/skel$ sudo su
sudo: unable to stat /etc/sudoers: Permission denied
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
Кроме того, веб-сайты на сервере теперь бросают 403 ошибки: You don't have permission to access / on this server. Server unable to read htaccess file, denying access to be safe
У меня нет физического доступа к серверу, таким образом, начальная загрузка режима восстановления проблематична. Кроме того, почему это разрешение изменяло вещи повреждения? Согласно документации, это был правильный поступок.
Вы работали
cd /etc/skel
sudo chmod 644 .*
.*
найдет все .files
(включая каталоги) в текущем рабочем каталоге и самом текущем рабочем каталоге и родительском каталоге. Вы применили режим 644
к ним:
. <-- problem here as it's the working directory
.. <-- big problem here as it's the /etc directory
.bash_logout
.bashrc
.config <-- problem here as it's a directory
.profile
Причина ничто не работало, состояла в том, что Вы удалили, выполняют разрешение на текущем рабочем каталоге. Это означает, что у Вас не было разрешения быть там!
Каталоги должны иметь, выполняют разрешение, которое будет вводиться или искаться. Это - вид пограничного случая, чтобы быть в каталоге, когда выполняются, разрешение удалено из него, но в той ситуации Вы доберетесь permission denied
почти для каждой команды.
Вы можете cd
из каталога, но Вы не сможете исправить полномочия без физического доступа потому что sudoers файл (в /etc
) не может быть считан.
Вы можете также
начальная загрузка в режиме восстановления, запустите корневую оболочку и смонтируйте запись чтения файловой системы путем выполнения mount -o remount,rw /
начальная загрузка в живую сессию и монтирует корневой раздел: sudo mount /dev/sdxY /mnt
(замена /dev/sdxY
с корректным названием корневого раздела) затем cd /mnt
Вы не сделали chmod -R
(к счастью!), таким образом, Вы только имеете, чинят три вещи. В восстановлении делают (то же, но с sudo и без первого /
в путях от /mnt
на живой сессии)
chmod 755 /etc
chmod 755 /etc/skel
chmod 755 /etc/skel/.config
восстановить корректные полномочия.