1 2 3 4 5 6 7 8 |
chattr +a file1 - позволить открывать файл на запись только в режиме добавления chattr +c file1 - позволяет ядру автоматически сжимать/разжимать содержимое файла. chattr +d file1 - указывает утилите dump игнорировать данный файл во время выполнения backup'а chattr +i file1 - делает файл недоступным для любых изменений: редактирование, удаление, перемещение, создание линков на него. chattr +s file1 - позволяет сделать удаление файла безопасным, т.е. выставленный атрибут s говорит о том, что при удалении файла, место, занимаемое файлом на диске заполняется нулями, что предотвращает возможность восстановления данных. chattr +S file1 - указывает, что, при сохранении изменений, будет произведена синхронизация, как при выполнении команды sync chattr +u file1 - данный атрибут указывает, что при удалении файла содержимое его будет сохранено и при необходимости пользователь сможет его восстановить lsattr - показать атрибуты файлов |
Рубрика: users \ group \ пользователи \ группы \ права
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
ls -lh - просмотр полномочий на файлы и директории в текущей директории chmod go-rwx directory1 - отобрать у группы и всех остальных все полномочия на директорию directory1. chown user1 file1 - назначить владельцем файла file1 пользователя user1 chown -R user1 directory1 - назначить рекурсивно владельцем директории directory1 пользователя user1 chgrp group1 file1 - сменить группу-владельца файла file1 на group1 chown user1:group1 file1 - сменить владельца и группу владельца файла file1 find / -perm -u+s - найти, начиная от корня, все файлы с выставленным SUID chmod u+s /bin/binary_file - назначить SUID-бит файлу /bin/binary_file. Это даёт возможность любому пользователю запускать на выполнение файл с полномочиями владельца файла. chmod u-s /bin/binary_file - снять SUID-бит с файла /bin/binary_file. chmod g+s /home/public - назначить SGID-бит директории /home/public. chmod g-s /home/public - снять SGID-бит с директории /home/public. chmod o+t /home/public - назначить STIKY-бит директории /home/public. Позволяет удалять файлы только владельцам chmod o-t /home/public - снять STIKY-бит с директории /home/public |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
groupadd group_name - создать новую группу с именем group_name groupdel group_name - удалить группу group_name groupmod -n new_group_name old_group_name -переименовать группу old_group_name в new_group_name useradd -c "Nome Cognome" -g admin -d /home/user1 -s /bin/bash user1 - создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell'а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognome useradd user1 - создать пользователя user1 userdel -r user1 - удалить пользователя user1 и его домашний каталог usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 - изменить атрибуты пользователя passwd - сменить пароль passwd user1 - сменить пароль пользователя user1 (только root) chage -E 2005-12-31 user1 - установить дату окончания действия учётной записи пользователя user1 pwck - проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow grpck - проверяет корректность системных файлов учётных записей. Проверяется файл/etc/group |
useradd
1 2 3 4 5 6 7 8 9 10 |
useradd -D - показать значения используемые по умолчанию GROUP=100 - ИД группы 100 HOME=/HOME - установить корневой каталог /home INACTIVE=-1 - отключить истечение времени действия пароля (-1) EXPIRE= - не устанавливать дату истечения срока действия учетной записи SHELL=/bin/sh - установит интерпретатор команд sh (по умолчанию bash) SKEL=/etc/skel - скопировать файлы конфигурации (из /etc/skell в $HOME) CREATE_MAIL_SPOOL=no - создать папку для хранения временных данных электронной почты useradd -D -b /home2 -s /bin/csh - установить базовую директорию и интерпретатор команд csh |
Информация:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
0) Суперпользователь, он же системный администратор, он же root. Обычно этот пользователь имеет в системе имя root. Если вы войдете в систему под именем root (разумеется, для этого необходимо знать соответствующий пароль), ваши права будут не ограничены: вы можете просматривать, изменять, удалять любые файлы, выполнять любые программы и т. д. Такие широкие полномочия требуются только для администрирования системы. Для выполнения любых других задач наделять пользователя правами администратора из соображений безопасности нельзя. 1) Обычный пользователь. Таким пользователям система Linux нужна для работы. Они имеют неограниченный доступ к собственным файлам и ограниченный доступ к оставшейся части системы. По возможности их логин должен совпадать с именем (например, kathrin или hofer). 2) Системный пользователь для демонов и служебных программ. Наконец, существует несколько пользовательских учетных записей, для которых не предусмотрена интерактивная работа с компьютером — такие пользователи нужны для выполнения определенных программ. Например, за работу веб-сервера Apache отвечает не системный администратор, а отдельный пользователь, который в зависимости от дистрибутива может называться apache, wwwrun или httpd и т. д. Благодаря наличию таких пользователей гарантируется максимальная безопасность системы. |
UID и GID
1 2 3 4 5 6 7 8 |
Номер UID (идентификатор пользователя) служит для идентификации пользователя. Этот номер сохраняется отдельно в качестве дополнительной информации к каждому файлу чтобы было известно, кому какой файл принадлежит. Существуют правила распределения номеров UID: администратор всегда имеет UID = 0. Для серверных служб и демонов в большинстве дистрибутивов предусмотрены идентификационные имена в диапазоне от 1 до 999 (в Red Hat и Fedora, а также в некоторых других дистрибутивах все еще применяются старые правила с использованием диапазона значений от 1 до 499). Для обычных пользователей, соответственно, предусмотрены номера от 1000 (В RHEL 6 и Fedora до версии 15, а также в некоторых других дистрибутивах действовали старые правила: для серверных служб применялся диапазон от 1 до 499, для пользовательских ID — от 500 и выше). Номер GID (идентификатор группы) указывает, к какой группе принадлежит пользователь. |
Пример команд:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
useradd -c "User Vasya" -g admin -d /home/vasya -s /bin/bash vasya - создать пользователя vasya, домашним каталогом будет создана директория /home/vasya, в качестве системной оболочки будет назначен /bin/bash, пользователь будет включен в группу admin, кроме того для учетной записи будет создан комментарий "User Vasya" useradd vasya - создать пользователя vasya usermod -c "User FTP" -g system -d /ftp/ftpuser -s /bin/nologin ftpuser - изменение пользователя userdel -r vasya - удалить пользователя с именем vasya и его домашнюю директорию groupadd [ group_name ] - создать группу с именем group_name chage -E 2005-12-31 vasya - установить дату окончания действия учётной записи пользователя vasya groupdel [ group_name ] - удалить группу group_name groupmod -n test new_test - переименовать группу test в new_test newgrp - [group] - изменяет основную группу текущего пользователя. при указании "-", ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. если не указывать группу, основная группа будет назначена из файла /etc/passwd grpck - проверка корректности системных файлов учётных записей. Проверяется файл/etc/group pwck - проверка корректности системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow passwd - изменить пароль текущего пользователя passwd vasya - изменить пароль пользователя vasya ( может выполнять только root ) |
1 2 3 4 5 6 7 8 9 10 |
chattr +a file - разрешает только добавление данных в файл chattr +d file - игнорировать данный файл при создании резервной копии с помощью программы dump chattr +c file - разрешить ядру автоматически сжимать/разжимать содержимое файла chattr +i file1 - защита файла от каких либо изменений или манипуляций: редактирование, перемещение, удаление, создание ссылок на него chattr +S file1 - определяет, будет-ли при сохранении изменений, произведена синхронизация, как при использовании команды sync chattr +u file1 - при удалении файла с данным атрибутом, его будет сохранено, что-бы оставить пользователю возможность восстановить данные в случае необходимости chattr +s file1 - позволяет безвозвратное удаление данного файла. При удалении файла с этим атрибутом, место на диске, занимаемое файлом, перезаписывается нулями, после чего файл уже не подлежит восстановлению lsattr - листинг файлов с атрибутами |
Немного теории:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Права доступа к файлу: В каждом файле или каталоге сохраняется следующая информация: владелец файла; группа, к которой относится файл; девять битов доступа (rwxrwxrwx для read/write/execute — для владельца файла, членов группы владельца и всех остальных); еще несколько дополнительных битов для выполнения специальных функций. Как правило, владельцем файла является его создатель. В качестве группы обычно используется основная группа владельца. Информация о доступе (г, w и х) описывает, кто имеет право читать файл, записывать в него информацию (то есть вносить изменения) и выполнять его. Таким образом, владелец файла получает больше прав, чем другие пользователи. Обычно эта информация называется битами доступа, так как внутри системы она сохраняется как число с разрядной кодировкой. Биты доступа, владелец файла, а также соответствие этого файла к той или иной группе можно просмотреть с помощью команды ls -l. Права на файлы/папки d 421 421 421 chmod d rwx rwx rwx тип U G O d - тип файла (d)каталог, (-)файл, (c)идентификатор, (l)символьные ссылки, (b)блочные устройства, (p)именованные каналы, (s) сокеты r - чтение 4 w - запись 2 x - выполнение 1 |
Права доступа к каталогам:
1 2 3 4 |
В принципе девять битов доступа применимы и при работе с каталогами, но в таком случае их значение несколько отличается: r-бит позволяет другим пользователям просмотреть содержимое каталога с помощью команды ls. x-бит дает возможность перейти в этот каталог с помощью cd. Если поставить и х, и w, то в каталоге можно создавать новые файлы. |
Бит Setuid:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Бит Setuid иногда сокращенно называется suid. С его помощью программа всегда выполняется так, как если бы пользователь запускал ее сам. Итак, если владельцем программы является администратор (это случается довольно часто), то любой пользователь может работать с этой программой так же, как если бы он был администратором. Внутри системы для выполнения программы применяется пользовательский идентификационный номер владельца файла, а не UID пользователя, работающего с файлом в данный момент. Бит Setuid применяется для того, чтобы присваивать обычным пользователям дополнительные права, действующие лишь при выполнении данной конкретной программы. Правда, это чревато угрозой для безопасности — особенно тогда, когда при выполнении данной программы запускаются другие программы. Это означает, что по возможности следует избегать применения бита Setuid. Одно из немногих исключений — команда mount. Вместо бита Setui d можно использовать команду sudo. В таких программах команда ls -l показывает для пользовательского бита доступа букву s (a не x). Восьмеричное значение этого бита (для chmod) составляет 4000. |
Бит Setgit:
1 2 3 4 5 6 7 |
Этот бит работает с программами почти так же, как и Setuid. Правда, в данном случае при выполнении программы используется идентификационный номер группы, к которой относится файл (а не групповой идентификационный номер пользователя, работающего с программой). В таких программах команда ls -l выдает для групповых битов доступа букву s (a не x). Восьмеричное значение этого бита составляет 2000. При работе с каталогами бит Setgid действует так, что новые файлы, создаваемые в том или ином каталоге, сразу же относятся к той же группе, что и этот каталог (а не к группе пользователя, создавшего файл, как это бывает обычно). |
Бит Sticky:
1 2 3 4 5 |
В каталогах, в которых файлы может изменять любой пользователь, бит Sticky гарантирует, что каждый пользователь может удалять только свои файлы, но не файлы коллег. Этот бит ставится, например, для каталога /tmp. Здесь любой пользователь может сохранять временные файлы. Однако необходимо избегать таких случаев, в которых любой пользователь мог бы по собственному усмотрению переименовывать или удалять файлы других пользователей. Команда ls -l в таких программах выдает для всех действительных битов доступа букву t (а не х). Восьмеричное значение этого бита составляет 1000. |
Специальные биты в ls:
1 2 3 4 |
При выполнении команды ls -l в определенной ситуации могут отображаться специальные биты S и T. При этом мы не имеем дело с новыми специальными битами, а получаем указание на то, что биты Setuid, Setgid или Sticky были использованы неправильно. S — бит Setuid или Setgid поставлен, но не поставлен бит доступа x (при этом Setuid или Setgid не будут работать). T — бит Sti cky поставлен, но не поставлен бит доступа x для группы others. |
chown
1 2 3 |
chown vasya /file - назначить пользователя vasya владельцем файла file chown -R vasya directory - рекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий chown vasya:group /file - назначить владельца и группу для файла /file |
chgrp
1 |
chgrp new_group file - изменить группу-владельца для file на new_group |
chmod
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
chmod ugo+rwx /directory - установить полные права доступа rwx ( Read Write eXecute ) для всех ugo ( User Group Other ) на директорию /directory. то-же самое можно сделать, используя числовой представление chmod 777 directory chmod go-rwx /directory - удалить все права на директорию /directory для группы и остальных chmod o+t /home/public - установить так называемый STIKY-бит на директорию /home/public. удалить файл в такой директории может только владелец данного файла chmod o-t /home/public - удалить STIKY-бит с директории /home/public chmod u+s /bin/binary_file - установить SUID-бит на файл /bin/binary_file. это позволяет любому пользователю системы, запускать данный файл с правами владельца файла chmod u-s /bin/binary_file - удалить SUID-бит с файла /bin/binary_file chmod g+s /home/public - установить SGID-бит на директории /home/public chmod g-s /home/public - удалить SGID-бит с директории /home/public |
Показать права
1 2 |
find / -perm -u+s - поиск всех файлов с установленным SUID битом, начиная с корня файловой системы ls -lh - листинг текущего каталога с правами доступа |
Сортировка файла passwd:
1 2 3 |
awk -F: '$3 > 999 { print $0}' /etc/passwd - возможностью сортировки по полям или столбцам в awk awk -F: '($3 >= 1000) & ($3 <= 1005) { print $0}' /etc/passwd awk -F: '$3 > 499 { print $0}' /etc/passwd | sort - Алфавитная сортировка результата |
Общая информация:
1 2 3 4 5 6 7 8 9 10 11 |
Коды UID и GID во всех версиях Linux лежат в интервале от 0 до 65534. В Debian: 0-99 — системные учетные записи; 100-999 — установленные пользователем программы и демоны (Postfix, Fetch-mail, gdm, dictd и т. д.); 1000-29999 — учетные записи обычных пользователей; 30000-65533 — согласно документации Debian, коды зарезервированы, но при желании вы можете их использовать; 65534 — пользователь nobody, учетная запись без прав и разрешений. В Red Hat В Red Hat номера системных групп лежат в диапазоне 0-499, а в Debian — в диапазоне 100-999 |
Создание\ Добавление\ Удаление пользователей:
1 2 3 4 5 6 7 8 9 10 |
adduser iivanov - добавления пользователя ( юзера ) adduser --uid 1500 iivanov useradd -m имя пользователя useradd -m -с Ivan Ivanov,,,,iivanov useradd -u 1500 -s tcsh iivanov useradd -G users,cdrecord,dialout iivanov userdel aborg - удалить пользователя из всех системных файлов (/etc/passwd, /etc/shadow, /etc/group) userdel -r aborg - удалить пользователя, его почтовый ящик,и дом каталог,из всех системных файлов (/etc/passwd, /etc/shadow, /etc/group) |
Создание \ Добавление \ Удаление группы для пользователей
1 2 3 4 |
groupadd newgroup - создает новую группу groupadd -g 127 newgroup - создает новую системную группу groupdel имя_группы - удаление группы |
Настройка \ управление атрибутами пользователя
1 2 3 4 5 6 7 8 |
usermod -d /server1/home/aborg/ -m aborg - перемещает домашний каталог пользователя со всем содержимым. Сначала указывается новый каталог, а затем имя пользователя usermod -s /bin/false foober - можно лишить пользователя доступа к командному процессору И все же лучше всего придерживаться варианта с passwd -l и -u usermod -I aborg anitab - сменить имя usermod -u 1200 anitab - сменить UID |
Пароли пользователей
1 2 3 4 5 6 7 8 9 10 11 |
passwd -l ivanov - блокировка учетной записи passwd -u ivanov - разблокировка учетной записи Еще один способ заблокировать учетную запись - вставить восклицательный знак в начало поля пароля в файле /etc/shadow: foobar:!$l$wiD1Qr34$mitGZA76MSYCY04AHIYl:12466:0:99999:7:: : Также можно заменить х в поле пароля в файле /etc/passwd звездочкой (*): foober:*:1025:1025:Foober Smith..,:/home/foober:/bin/bash passwd ivanov - смена пароля passwd -х 180 -w 5 -i l ivanov - Следующая команда ограничивает срок действия пароля aborg шестью месяцами, с выдачей предупреждения за пять дней passwd -S ivanov - посмотреть дату истекания пароля |
Поиск файлов пользователя и группы:
1 2 3 4 |
finger iivanov - показать инфу о юзере find / -uid 1050 - поиск фалов владельца 1050 find / -uid 1050 - найти все каталоги пользователя с UID 1050 find / -gid 750 - поиск группы с gid 750 |
Поиск и изменения группы \ владельца файлов и каталогов
1 2 3 4 5 6 7 8 9 10 11 |
Принадлежность пользователя к группам не изменяется. Все файлы в домашнем каталоге пользователя автоматически обновляются новым кодом UID. Тем не менее вам придется вручную найти и изменить все файлы за пределами домашнего каталога (crontab, почтовые каталоги, временные файлы /tmp и файлы в общих каталогах). chfn aborg - Изменение данных GECOS chown -R www-data.www-data /nome/user_name/dir - рекурсивное смена имени и группы chgrp 800 /usr/src/include/lber.h - изменение группы chown 1200 /usr/scr/include/lber.h - смена владельца find / -uid 1050 -exec chown -v 1200 {} \; - поиск фалов владельца 1050 и замена его uid на 1200 find / -uid 1050 -ok chown -v 1200 {} \; -если заменить ключ -exec на -ok, команда find будет запрашивать подтверждение каждого изменения find / -gid 750 -exec chgrp -v 800 {} \ ; - поиск 750 и авто изменение группы на 800 |
chmod:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Права на файлы/папки d 421 421 421 chmod d rwx rwx rwx тип U G O d - тип файла (d)каталог, (-)файл, (c)идентификатор, (l)символьные ссылки, (b)блочные устройства, (p)именованные каналы, (s) сокеты r - чтение 4 w - запись 2 x - выполнение 1 chmod 0700 - drwx------ - Владелец может читать, записывать файлы в данный каталог, а также переходить в него. Все остальные пользователи не имеют к нему доступа chmod 0711 - drwx--x--x - Владелец обладает теми же правами. Все остальные могут открывать каталог, но не могут просматривать или изменять файлы в нем chmod go+r - drwxr--r-- chmod 0777 - drwxrwxrwx - Полный доступ chmod a=rwx - drwxrwxrwx - Полный доступ chmod 0000 - Доступ полностью закрыт chmod a-rwx - Доступ полностью закрыт chmod ббб - Открывает права на чтение и изменение файла chmod go-rw - Не позволяет никому, кроме самого владельца, просматривать, вносить изменения или удалять файл chmod 644 - Только владелец может вносить изменения в файл или удалять его, но все могут его просматривать |
umask:
1 2 3 4 |
umask 0066 - Создает каталоги с правами доступа drwx--x--x и файлы с правами доступа -rw------- umask 0077 - Создает каталоги с правами доступа drwx------ и файлы с правами доступа -rw------- umask 0022 - Создает каталоги с правами доступа drwxr-xr-x и файлы с правами доступа -rw-r--r-- umask 0777 - Создает каталоги с правами доступа d--------- и файлы с правами доступа ---------- |
lsattr
1 2 3 4 5 6 7 8 9 |
lsattr /etc/host* - отображает атрибуты /etc/host* lsattr -aR /tmp/ | less - рекурсивно отображает все атрибуты каталога /tmp Дефисы соответствуют 13 атрибутам ext2/ext3, которые могут быть установлены. Ни один из них не является отображаемым по умолчанию: а (только добавление), с (сжатый), d (без дампа), I (постоянный), j (регистрация данных), s (безопасное удаление), t (запрет слияния в конце файла), и (не удаляемый), А (без обновления atime), D (синхронные обновления каталогов), S (синхронные обновления) и Т (верхушка дерева каталогов). chattr +i whatever.iso - с помощью команды chattr вы можете изменять эти атрибуты |
1 2 3 4 5 6 7 8 9 |
last - вывести список недавних удачных входов в систему last -a - вывести список недавних удачных входов в систему (упрощает чтения имён) lastb - вывести список неудачных входов в систему who -u - вывести список всех пользователей в системе в данный момент users - вывести список всех пользователей в системе в данный момент (кратко) id - ваш UID и GID who am i - информация о текущем сеансе (UID, GID, home_path, и т.д.) finger -s name_user - краткая информация о user_name finger -l name_user - полная информация о user_name |