2013-03-13 2 views
-3

Скажем, у меня есть папка «root». У меня есть эта папка, и я делаю ее такой, что для других (включая пользователя «user2», разрешения - r-x)Разрешения для каталога Unix для записи

Внутри root у меня есть другая папка «bin». Я меняю владельца «bin» на пользователя «user2» и предоставляю ему разрешения rwx.

  1. Будет ли пользователь2 иметь возможность создавать новые файлы в папке «bin»? Не имеет ли смысл писать «root» для его способности делать это?
  2. Кроме того, может ли пользователь2 удалить всю папку «bin» из «root»? (Я не хочу, чтобы он мог это сделать - ему просто нужно создавать/удалять файлы в папке!)
+5

Это должно быть довольно легко попробовать для себя ... Создайте тестовую директорию и посмотрите, что произойдет. – jahroy

ответ

5
  1. Да. Потому что user2 имеет доступ (x) разрешение на root и владеет bin, он может создавать файлы в root/bin. Если разрешения в настоящее время не содержат права на запись для владельца, владелец (user2) может изменить права доступа к каталогу, чтобы разрешения включали разрешение на запись.

  2. Нет, потому что user2 не имеет права на запись в root, user2 не может удалить bin из root.

2

Он может писать внутри бункера, но не за его пределами. Объем его прав на rwx находится в этой папке, если вы не измените его разрешения.

1

Понимание того, что вы заявили, у вас есть что-то вроде этого:

drwxr-xr-x 10 root  root   22 Dec 26 23:04 root 

где содержимое «корня», как это:

cd root 
ls -la 
drwxr-xr-x 10 root  root   22 Dec 26 23:04 . 
drwxr-xr-x 29 root  root   34 Oct 24 06:13 .. 
drwx------ 2 user2 root   3 Oct 23 10:28 bin 

Разрешения на «корень» должны должен быть не менее 555 (r-xr-xr-x), потому что он не будет работать, если ваши права доступа к корневому каталогу были 500 или 550 (см. ниже), потому что «user2» не будет разрешено вводить каталог «root» (там являются исключениями, например 550, если «user2» является членом группы «root»).

# This would not work, user2 cannot enter the "root" directory 
drwx------ 10 root  root   22 Dec 26 23:04 root 

Чтобы понять все это, вам сначала нужно понять, что каталог - это действительно и просто файл. Основное различие между каталогом и файлом - это значение разрешения «x». Если у пользователя нет разрешения «читать», он не может видеть файлы в каталоге. Таким образом, позволяет поставить доступ к 711, как это:

drwx--x--x 10 root  root   22 Dec 26 23:04 root 

Теперь давайте попробуем посмотреть, какие файлы находятся в каталоге.Вы не можете:

$ ls -la root 
root: Permission denied 
total 3 

Однако, вы можете ввести его (из-за «х» казнить направо), но вы все еще не можете увидеть внутри:

$ cd root 
$ ls -la 
.: Permission denied 
total 3 

Но если вы знаете, что внутри существует каталог у вас есть доступ, вы можете ввести его:

$ cd bin # Ps. Here we assume we did the 'cd root' above already 
$ ls -la 
total 6 
drwxr-xr-x 2 user2 root   2 Mar 14 14:57 . 
drwx--x--x 3 root  root   3 Mar 14 14:57 .. 

И «user2» может сделать, как владелец, все, что он хочет. Доступ к «bin» может быть даже «700», если вы владелец, вы можете ввести его. Поскольку доступ 755 (в нашем примере), любой может войти в каталог «bin», но только «user2» может создавать в нем файлы. Изменение или просмотр этих возможных файлов будет зависеть от того, какой доступ им предоставляет «user2».

«user2» не может удалить каталог «bin», даже если он принадлежит ему, поскольку он не владеет «файлом» (т. Е. «Корневой» каталог), где написано имя каталога «bin». Это принадлежит «корневому» пользователю, которому разрешено писать только там.

+0

+1. Спасибо за подробное объяснение примерами! :) –

Смежные вопросы