chmod (для новичка) (и как правильно управлять доступом)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
CmndrAlexGreen
Сообщения: 71
ОС: XP

chmod (для новичка)

Сообщение CmndrAlexGreen »

Уважаемы, прошу разьяснения касающиеся chmod и предоставление прав.

К сожалению мне не удается найти внятный материал для понимания процесса разделения прав для пользователей. Признаю, вопрос для продвинутых линуксоидов смешной).

Поставил Archlinux, создал пользователя через adduser, добавил его в группы аудио и тд. Но как я понял данный юзер имеет право на копирование, чтение, удаление и прочии операции с файлами, только в пределах своей категории (/home/user). Но вот к примеру я хочу установить фоновыю картинку для xfce4, и для этого картинку нужно скопировать в папку /usr/share/xfce4/bgrd. И в дальнейшем я так понимаю придется переодически залезать в другие папки и работать с другими файлами, за пределами домашней категории.

Скажите можно ли, назначить юзеру изначально права 777 (к примеру), чтоб он мог работать со всеми файлами на диске. Хотя тут получается, что с таким же успехом можно работать из под рута всегда и не создавать пользователя.
Как вариант, возможно назначить юзеру права 777 за исключением определенного списка файлов/папок, изменение которых поведет к плохим последствиям.

Прошу человеческого разьяснения)).
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: chmod (для новичка)

Сообщение sash-kan »

рядовому пользователю не требуется менять ничего за пределами его домашнего каталога.
в частности:
CmndrAlexGreen писал(а):
16.11.2009 00:50
Но вот к примеру я хочу установить фоновыю картинку для xfce4
http://www.xfce.org/documentation/4.0/manu...ktop-background

если у вас, как у администратора машины, возникает задача что-либо поменять, то и делать это следует от имени администратора. стандартное имя для учётной записи администратора — root.
повседневная работа, не требующая административных привилегий, естественно, должна осуществляться из-под рядовой учётной записи.
и в этом нет ничего необычного. даже microsoft в руководствах по администрированию своей операционной системы советует ровно то же самое.

p.s. почитайте что-нибудь хорошее. ту же posix-book Алексея Федорчука. http://www.linuxcenter.ru/lib/books/posixbook/
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: chmod (для новичка)

Сообщение pelmen »

Атрибуты доступа к данным
Любая компьютерная информация должна иметь определенные атрибуты, определяющие права доступа пользователей к этой информации. Доступ бывает трех типов: чтение, запись, выполнение. В случае с директориями (каталогами), выполнение означает получение информации о содержимом каталога. Атрибуты доступа к информации распространяются на три типа учетных записей: владелец информации, пользователи, входящие в группу, которой назначены определенные права доступа и все остальные. Таким образом, информации сначала необходимо назначить владельца и группу, после чего можно устанавливать права доступа.
Если ввести комманду ls -l, то вы увидете атрибуты доступа, отображающиеся в следующем виде: -rwxrwxrwx владелец:группа имя_файла, или drwxrwxrwx владелец:группа имя_каталога. Как можно догадаться, первая троица rwx отвечает за права доступа к информации владельца, вторая – группы, последняя – остальные пользователи. Соответственно, если атрибуты доступа выставлены в значение rwxr--r--, то в этом случае владелец имеет право читать, изменять и выполнять информацию, группа и все остальные – только читать.

Атрибуты можно устанавливать, используя цифры. При этом подходе атрибуты максимального доступа (всем все можно) - 777, т.к. в двоичной системе 7 = 111. Таким образом, атрибут получается равным 111 111 111. Первые три цифры относятся к владельцу файла/папки, вторые три - к группе (к пользователям, входящим в группу), а третьи - к остальным. В каждой троице по аналогии первая цифра - чтение, вторая - запись, третья - исполнение (запуск). В нашем примере это означает, что у владельца данного файла право на чтение = 1, на запись = 1 и на исполнение = 1. У группы и у остальных то же самое. Комманда chmod 765 somefile приведет к тому, что атрибуты файла somefile станут такими: -rwxrw-r-x user:group somefile.
Пояснение про цифры:
1 = 001 = --x (только выполнение)
2 = 010 = -w- (только запись)
3 = 011 = -wx (запись и выполнение)
4 = 100 = r-- (только чтение)
5 = 101 = r-x (чтение и выполнение)
6 = 110 = rw- (чтение и запись)
7 = 111 = rwx (чтение, запись и выполнение)
Логику единиц-нулей можно проследить.
Еще раз: одна цифра (например 7 или 4) соответствует 3 (трем!) битам (один или ноль). Эти три бита относятся к одной из категорий пользователей. Первая - про владельца, вторая про группу, трелья про остальных. Указывать только одну цифру (chmod 7 file) можно, но не нужно, запутаетесь. Лучше сразу 3 (или 4! см. википедию или ниже) цифры, например, 755 или 666 (т.е. сразу для Владельца, Группы и Остальных) или 1755.
Теперь про 4 цифры: она добавляется в начало, т.е. в случае 1755:
1 - дополнительные атрибуты
7 - атрибуты владельца
5 - атрибуты группы
5 - атрибуты остальных
Дополнительные атрибуты: они распространяются сразу на всех пользователей, т.е. в нашем случае "1" (001) первый "0" идет к владельцу, второй "0" идет к группе, а третья цифра "1" идет к остальным. При этом атрибуты эти отосятся только к битам "выполнение" (х), и в случае "1" меняют "x" на "S" (у пользователя и группы), или на "T" (у остальных).
Проще говоря, если мы на директорию с правами drwxrwxrwx (777) сделаем
chmod 0777 - права не изменятся
chmod 1777 - она станет drwxrwxrwT
chmod 2777 - drwxrwSrwx
chmod 3777 - drwxrwSrwT
...
chmod 7777 - drwSrwSrwT
Подробнее про "S" и "T", что это и чем это может быть удобнее, чем просто "x" читать ниже.
Подробнее про chmod можно почитать в википедии

Еще атрибуты можно устанавливать, используя символы - буквы - ugoa+-=rwxXst.
u = user - пользователь-владелец файла/каталога
g = group - группа пользователей
o = other - все остальные пользователи
a = all - все, и владелец, и группа, и остальные
r = read - чтение
w = write - запись
x = execute - выполнение
s = set user or group ID on execution - выполнение с правами владельца\группы (применимо только к владельцу и группе)
t = restricted deletion flag or sticky bit - запись\удаление только на "свои" файлы (у кого Вы являетесь владельцем)
Таким образом менять можно конкретный бит (биты) атрибутов доступа:
chmod u+r file (владелец будет читать)
chmod ug-rw file (владелец и группа НЕ будут читать и писать)
chmod ugo+rwx file (владелец, группа и все остальные будут читать, писать и выполнять, т.е. 777)
chmod +rwx file (тоже самое)
chmod go+w,u-r file (группа и остальные будут писать, а владелец НЕ будет читать)
chmod u=r file (в атрибутах доступа, относящихся к владельцу будет выставлено разрешение на чтение. Остальные будут запрещены)
chmod u+s file (кто бы ни попытался его выполнить, запуск будет происходить от имени владельца без запроса его пароля)
chmod +t dir (dir станет распределенным каталогом. РК - это каталог, куда вы можете записывать свои файлы, читать чужие (если можно), а стирать и переименовывать ТОЛЬКО СВОИ)
и так далее.

Не смотря ни на какие атрибуты, пользователь root имеет доступ к любой информации в системе, что делает получение прав администратора злоумышленником еще более привлекательным.
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: chmod (для новичка)

Сообщение BIgAndy »

CmndrAlexGreen писал(а):
16.11.2009 00:50
Скажите можно ли, назначить юзеру изначально права 777 (к примеру), чтоб он мог работать со всеми файлами на диске.

Сдуру, конечно можно, но в трезвом уме -нет.
Спасибо сказали:
Аватара пользователя
CmndrAlexGreen
Сообщения: 71
ОС: XP

Re: chmod (для новичка)

Сообщение CmndrAlexGreen »

pelmen, этот материал я уже читал)).

BIgAndy, данный приемер я взял из убунты, у моего знакомого при покупке ноута у пользователя были права 777))).

sash-kan, в общем я с многим еще не сталкивался, возможно и небудет необходимости пользователем чтото менять, но опять же к xfce- первый раз, когда я ставил Arch и начал его освивать, я менял настройки рабочего стола (темы, иконки, всякие галочки) и xfce после перезапуска не сохранял эти настройки, пока я не дал права пользователю на изменения в папку, где xfce хранит свои конфигурационные файлы.

Возможно я конечно дал маху))), решив дать пользователю права 777, да это конечно крайность)). Но мнеб хотелось услышать о том как обычно делает бывалый пользователь-Unix, в смысле прям по полочкам как шаблон для других (начинающих) пользователей.

По типу:
первм делом с помощью команды adduser, создаем пользователя, включаем его в такие-то, такие-то группы. Далее открываем ему доступ к тем-то, тем-то папкам (с перспективой на то что там чтото придется изменять или править). И тд.

Из всего материала нет не одного простого мана, для несоображающих в Linux'ax юзеров. Книжки-то я начал читать, и Федорчука пытаюсь переварить, на на это все нужно время, а работать нужно сегодня)).
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: chmod (для новичка)

Сообщение deadhead »

CmndrAlexGreen писал(а):
16.11.2009 16:51
Далее открываем ему доступ к тем-то, тем-то папкам (с перспективой на то что там чтото придется изменять или править). И тд.

Этого не делают
CmndrAlexGreen писал(а):
16.11.2009 16:51
для несоображающих в Linux'ax юзеров
:-)
Вам, как пользователю, не нужно что-то изменять в системе. Если существет необходимость запуска программ используйте sudo.

P.S. Десять заповедей начинающего пользователя Linux
[x] close
Спасибо сказали:
Аватара пользователя
CmndrAlexGreen
Сообщения: 71
ОС: XP

Re: chmod (для новичка)

Сообщение CmndrAlexGreen »

Тоесть, создав пользователя, его только дабавляют в определенные группы и все). Доступ (777) к папкам, только тем, которыми владеет этот пользователь. И тоесть на перспективу, для простого пользователя не понадобится дуступ к сторонним папкам.
Вот теперь понятно.
Всем спасибо.
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: chmod (для новичка)

Сообщение deadhead »

CmndrAlexGreen писал(а):
16.11.2009 17:05
Тоесть, создав пользователя, его только дабавляют в определенные группы и все). Доступ (777) к папкам, только тем, которыми владеет этот пользователь. И тоесть на перспективу, для простого пользователя не понадобится дуступ к сторонним папкам.
Вот теперь понятно.
Всем спасибо.

Совершенно верно! :-)
Вам остается лишь следить (как администратору) что бы пользователь своевременно поподал в нужные группы, например, audio для воспроизведения музыки/звуков или games для запуска игр. Названия групп и области их охвата зависят от дистрибтива, и, как правило, подробно описаны в документации.

chmod может вам пригодиться при создании общих с другими пользователями данных, но в этом случае вы можете завести отдельную группу, и добавить "привелигированнх" пользователей в эту группу, выстовив при этом соответсвующие права для группы на "расшаренные" данные. Эти действия опять же лучше выполнять от имени администратора :-)
[x] close
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: chmod (для новичка)

Сообщение drBatty »

CmndrAlexGreen писал(а):
16.11.2009 16:51
Возможно я конечно дал маху))), решив дать пользователю права 777

это как у вас получилось-то? Вроде-бы можно давать права только файлам, ну или менять umask.
или вы ВСЕМ файлам дали 777?! Это не просто плохо, это чрезвычайно недальновидно :(

ЗЫЖ если вам нечего скрывать, используйте права 644 (umask 0022), или права 600(640), если есть что скрывать

deadhead писал(а):
16.11.2009 17:11
chmod может вам пригодиться при создании общих с другими пользователями данных, но в этом случае вы можете завести отдельную группу, и добавить "привелигированнх" пользователей в эту группу, выстовив при этом соответсвующие права для группы на "расшаренные" данные. Эти действия опять же лучше выполнять от имени администратора :-)

это и нельзя делать не от админа (если можно, то это венда).
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали: