Изменены параметры доступа к скрытым файлам /etc/skel, заблокированным в bash/sudo
Справочная информация: я сделал ошибку новичка на виртуальной машине Ubuntu 14.04 и рекурсивно изменил разрешения на /etc
папка. Я восстанавливал их по умолчанию по 1 каталогу за раз, используя свежую виртуальную машину в качестве модели и просматривая соответствующие разрешения на apt-browse.org, когда файлы не существуют на виртуальной машине "модели". Когда я добрался до /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
У меня нет физического доступа к серверу, поэтому восстановление режима загрузки проблематично. Кроме того, почему это разрешение изменило вещи? Согласно документации, это было правильно.
1 ответ
Ты бежал
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
восстановить правильные разрешения.