"Дозвіл відхилено" на компакт-диск у каталог, навіть якщо дозволи є правильними


13

Це так гарно. Увійдіть у вікно Linux (RHEL) як користувач 'g', роблячи ls -lahшоу

drwxrwxrwx 6 g    g    4.0K Jun 23 13:27 .
drwxrw-r-x 6 root root 4.0K Jun 23 13:15 ..
-rwxrw---- 1 g    g     678 Jun 23 13:26 .bash_history
-rwxrw---- 1 g    g      33 Jun 23 13:15 .bash_logout
-rwxrw---- 1 g    g     176 Jun 23 13:15 .bash_profile
-rwxrw---- 1 g    g     124 Jun 23 13:15 .bashrc
drw-r----- 2 g    g    4.0K Jun 23 13:25 .ssh

Отже, користувач 'g' у групі 'g' / повинен / вміти читати та записувати до каталогу .ssh, але якщо я це ls -lah .ssh/отримаю ls: .ssh/: Permission denied. Також я отримую відмову в дозволі, якщо я спробую catбудь-які файли в каталозі

Якщо я піду в якості кореня і змінити права доступу до 700, 744, 766або що - або до тих пір , як дозвіл користувача «» є 7 це працює , і я можу CD і LS каталог і файли всередині.

id g повертає

uid=504(g) gid=506(g) groups=506(g)

Редагувати:

Я скопіював ці дозволи в інше ідентичне вікно, і немає жодної проблеми. Я можу cdпотрапити в каталог без виконання дозволів.

Відповіді:


29

Каталог буде вимагати виконання набору біт в для того , щоб ввести його. Я не знаю, що ви протестували, але ви не можете ввести каталог без біта виконання чи читання файлів у ньому:

$ mkdir foo
$ echo "baz" > foo/bar
$ chmod 660 foo
$ cd foo
bash: cd: foo: Permission denied
$ cat foo/bar
cat: foo/bar: Permission denied

Тобто, якщо у вашому процесі немає набору можливостей CAP_DAC_OVERRIDE POSIX (як у root), що дозволяє вводити каталоги без набору виконуваних бітів, iirc.

В основному, вам слід спробувати зберегти ваш .ssh каталог на рівні 700, а все в ньому на рівні 600, просто щоб бути безпечним. Сторінка ssh man дає файлові інструкції щодо необхідних режимів власності та дозволу на файли в ~ / .ssh.


17

Для отримання каталогу потрібен дозвіл на виконання cd. Така поведінка очікується.


Але я також не можу catжодних файлів у каталозі з однаковими дозволами, їм не потрібно виконувати дозволи для читання
Smudge

4
Вам потрібно виконати дозволи в каталозі, щоб отримати доступ до всього, що знаходиться всередині каталогу. Ця відповідь правильна.
EightBitTony

1
@samarudge Розгляньте xкаталог, щоб дати вам дозвіл "бути в" цій директорії. Без нього ви не можете записати компакт-диски до каталогу, ви не бачите, що знаходиться в каталозі, ви не можете відкрити те, що в каталозі. Якщо у вас немає дозволу перебувати в бібліотеці, ви не можете там читати книги.
DerfK

Якщо я додаю дозволи на виконання до каталогу (744 - до каталогу, 644 - до файлів всередині), я отримаю помилку від SSHD, кажучи, що дозволи в каталозі .ssh повинні бути 644 або меншими. Але з дозволами, як 644, він говорить, що він не може отримати доступ до .ssh / санкціонованих_кейсів
Smudge

* У ньому конкретно сказано ".ssh / каталог", а не файли
Smudge

2

Для того, щоб ls або cd у каталог, вам потрібно виконати дозволи. Поки у вас їх немає, ви не можете реально перевіряти вміст і бачити дозволи файлів всередині, тому, швидше за все, права доступу до файлів самі помиляються, якщо ви не можете їх зрозуміти.

Дозвіл до каталогу на 700 та дозволи 644 для мене ідеально налаштовані.


Дозволи для файлів є 644, власник файлів - g: g, тому дозволи файлів є правильними. Якщо я додаю дозволи на виконання до каталогу, SSHD говорить про те, що мені потрібно скинути дозволи на 644 або менше
Smudge

Коментари Sunny правильні - голосування трохи суворіше
AndyM

0

Я вважаю, це проблема з файлом ssh? не загальне питання chmod?

Якщо так, спробуйте

$chmod go-w ~/
$chmod 700 ~/.ssh
$chmod 600 ~/.ssh/*
$chmod 600 ~/.ssh/.*

інше питання, чи може бути точка монтажу, чи монтується він з іншого місця, CIFS, NFS?
AndyM

0

Для відкриття каталогів потрібно встановити х біт (для каталогу, який розглядається як біт пошуку). Тому я використовую дерево, щоб я міг отримати лише набір папок і уникнути кошмару, коли всі файли встановлені як виконувані файли (опція для дерева є -d List directories only.):

sudo tree -faid here_goes_your_directory xargs -L1 -I{} sudo chmod 755  "{}"

Увага!!! Ви повинні це враховувати:

  • використання chmod або chown рекурсивних у кореневому /каталозі чи системних каталогах знищить вашу ОС (фактично все рекурсивне в /каталогах або системних каталогах небезпечно)

  • це не є хорошою практикою безпеки для встановлення такої маси дозволів

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.