Некоторые UNIX - команды.


АДМИНИСТРИРОВАНИЕ

 

-------------------------------------------------------------------------------------------------------------------------

Управление доступом

----------------------------

 

Чтобы изменить группу к которой относиться файл или каталог используют команду

 

chgrp

 

Чтобы изменить хозяина файла или каталога используют команду

 

chown

 

Чтобы сделать это с рекурсией есть опция -R

 

Пример:

 

chgrp -R www-data /home/lvm/test_dir

chown -R apache /home/lvm/test_dir

 

Изменить сразу и то и другое

 

chown -R apache.www-data /home/lvm/test_dir

 

Пример:

 

Чтобы изменить права доступа файла или каталога используют команду chmod

Права доступа кодируются тремя цифрами - [доступ хозяина][доступ группы][доступ для всех остальных].

При этом цифра доступа - это двоичное сочетание битов 1- испольнять(execute), 2 - записывать (write), 4 - считывать (read). Таким образом доступ на чтение/запись =6, полный доступ = 7

 

Пример:

 

Чтобы посволить читать и писать в файл его владельцу

и читать группе, по при этом запретить досту

всем остальным пишем:

 

chmod -R 640 /home/lvm/test_dir

 

 

Права доступа к файлам

-------------------------------

 

Для определения прав доступа к файлу можно воспользоваться командой ls -l

 

1                      2          3          4          5          6          7                      8

drwxr-x--x       2          root      root      5456    Dec 31            23:59               Santa.Claus

-rw-r--r--        1          andy     group   23456  Nov 12            13:29               readme.txt

 

Права доступа листинга отображаются в первой (1) колонке (за исключением первого символа, обозначающего тип файла d - директория)

Наличие прав доступа обозначается соответствующим символом, а отсутствие - символом "-".

Права доступа могут быть изменены только владельцем файла или суперпользователем(superuser) - администратором системы.

Для этого используется команда chmod.

 

Три уровня защиты для каждой из трех категорий пользователей:

r - разрешение чтения

w - разрешение записи

x - разрешение исполнения

 

rwx-rx-r

владелец-группа-все_прочие

В данном случае владелец - право читать, исполнять, группа - читать исполнять, прочие только читать.

Установка кода защиты файла

 

chmod код-защиты файл

Символьная форма ugoa - владелец, группа, остальные, все

rwx - чтение, запись, выполнение

+ разрешить

- запретить

Восьмеричный код 4 - чтение

2 - запись

1 - выполнение

0700 - чтение, запись, выполнение только владельцу 0764 u-все, g- чтение и выполнение, o-только чтение

 

-------------------------------------------------------------------------------------------------------------------------

 

Владельцы файлов

------------------------

 

Для определения владельцев файла текущего каталога можно получить подробный листинг командой ls -l

Третья и четвертая колонки содержат имена владельца-пользователя и владельца-группы:

 

1                      2          3          4          5          6                      7                      8

drwxr-x--x       2          root      root      5456    Dec 31            23:59               Santa.Claus

-rw-r--r--        1          andy     group   23456  Nov 12            13:29   readme.txt

 

Владельцем-пользователем вновь созданного файла является пользователь, который создал файл.

Порядок назначения владельца-группы зависит от конкретной версии Unix. Таким образом, владение файлом

определяет тот набор операций, который пользователь  может совершить с файлом. Часть из них, такие

как изменение прав доступа или владельца файла может осуществить толко владелец(или суперпользователь),

другие операции, такие как чтение, запись и запуск на выполнение(для исполняемых файлов) дополнительно

контролируется правами доступа.

 

 

Смена владельца

----------------------

 

сhown имя_нового_владельца имя_файла Смена группы гпуппа файл

 

Группы пользователей

--------------------

Если вы не хотите редактировать /etc/group вручную, используйте команду pw(8) для добавления и редактирования групп. Например, для добавления группы, называемой teamtwo, и проверки ее существования вы можете использовать:

Пример 13-8. Добавление группы с использованием pw(8)

# pw groupadd teamtwo
# pw groupshow teamtwo
teamtwo:*:1100:

Число 1100 это ID группы teamtwo. На данный момент в, teamtwo нет членов, и поэтому она практически бесполезна. Давайте изменим эту ситуацию, добавив jru в группу teamtwo.

Пример 13-9. Добавление пользователя в группу с использованием pw(8)

# pw groupmod teamtwo -M jru
# pw groupshow teamtwo
teamtwo:*:1100:jru

Аргумент к параметру -M это разделенный запятыми список пользователей, являющихся членами группы.

 

Пример 13-10. Использование id(1) для определения принадлежности к группам

% id jru
uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)

Как вы можете видеть, jru является членом групп jru и teamtwo.

 

 

chgrp - смена группы файла

синтаксис chgrp group file...

описание Команда chgrp изменяет группу файла file на group. Поле, обозначенное как group,

может быть десятичным идентификатором группы или именем группы. Для успешного выполнения этой команды

нужно быть членом группы group. 

 

Примеры использования команды chgrp

 

chgrp staff * - Установить гpуппу staff в качестве владельцев всех файлов текущего каталога

----------------------------------------------------------------------------------------------------------------------------------

 

Пользователи:

 

Добавление пользователя

-----------------------

 

Для того чтобы добавить регистрационную запись обычного пользователя, сделайте следующее.

Перейдите в текстовую консоль или режим эмуляции терминала и войдите в систему как суперпользователь.

Введите в командной строке команду

 

   adduser имя_пользователя

 

где имя_пользователя должно состоять из латинских букв и цифр и начинаться с буквы. В системе не должно

существовать регистрационной записи с таким же именем.

 

Установка или смена пароля

--------------------------

 

Для введения пароля нового пользователя или изменения пароля существующего введите в командной строке команду

 

    passwd имя_пользователя

 

Точно так же (работая с полномочиями суперпользователя) Вы можете изменить пароль пользователя,

который по каким-либо причинам не может войти в систему (например, если он забыл свой пароль).

После входа в систему любой пользователь может сам изменить свой пароль. Для этого следует в командной

строке ввести команду

 

   passwd

 

Удаление пользователя

---------------------

 

rmuser  имя_пользователя

 

userdel имя_пользователя

 

Для того чтобы удалить регистрационную запись, а также принадлежащие пользователю файлы,

введите в командной строке команду

 

   userdel -r имя_пользователя

 

Эта команда удаляет каталог /home/имя_пользователя и все его содержимое. Файлы данного пользователя,

расположенные в других местах, не удаляются автоматически, их необходимо находить и удалять вручную.

Удаление файлов, принадлежавших ранее удаленному пользователю, а также любой другой доступ к ним

(например, просмотр) возможен только с правами суперпользователя.

Удаление пользователя невозможно, если он в данный момент зарегистрирован в системе или работает

какой-либо процесс, запущенный от его имени.

 

Группы пользователей

--------------------

 

Пример 13-8. Добавление группы с использованием pw(8)

 

# pw groupadd teamtwo

# pw groupshow teamtwo

teamtwo:*:1100:

Число 1100 это ID группы teamtwo. На данный момент в, teamtwo нет членов, и поэтому она практически бесполезна. Давайте изменим эту ситуацию, добавив jru в группу teamtwo.

 

Пример 13-9. Добавление пользователя в группу с использованием pw(8)

 

# pw groupmod teamtwo -M jru

# pw groupshow teamtwo

teamtwo:*:1100:jru

Аргумент к параметру -M это разделенный запятыми список пользователей, являющихся членами группы. Из предыдущих разделов мы знаем, что файл паролей также указывает группу для каждого пользователя. Пользователь автоматически добавляется системой к списку групп; пользователь не будет показан как член группы при использовании pw(8) groupshow, но эта информация будет показана при использовании id(1) или похожего инструмента. Другими словами, с этим параметром программа pw(8) работает только с файлом /etc/group; она никогда не будет пытаться получить дополнительную информацию из файла /etc/passwd.

 

Пример 13-10. Использование id(1) для определения принадлежности к группам

 

% id jru

uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)

Как вы можете видеть, jru является членом групп jru и teamtwo.

 

 

 

Скажите пожалуйста как в FreeBSD 4.3 добавить пользователя в группу Wheel,

чтоб он мог пользоваться su. Я знаю что это все делается в файле /etc/group/,

но не знаю конкретно как. Спасибо

 

usermod -G wheel username

 

Лучше man pw на тему

 

pw usermod -G wheel.

 

А еще лучше не su, а настроить /etc/sudoers, дабы пользоваться более безопасной командой

sudo (она хотя бы пишет логи того, кто и что делал от рута).

 

Структура файла /etc/group

Файл /etc/group относится к общей схеме защиты систем типа Unix:

пользователь, группа и права достапу к файлам. Формат записи в данном файле следующий:

group_name:password:group_id:list

 

Поле group_name содержит текстовое имя для группы. В поле password размещается зашифрованный пароль данной группы. Если это поле пустое, то пароль не требуется. Поле group_id содержит уникальное число-идентификатор этой группы. Поле list содержит список пользователей, относящихся к этой группе, разделенный запятыми. Пользователям не нужно упоминаться в списке тех групп, которые указаны в качестве основной для них в файле /etc/passwd. Ниже приведен пример файла /etc/group:

 

root::0:root

other::1:root,hpdb

bin::2:root,bin

sys::3:root,uucp

adm::4:root,adm

daemon::5:root,daemon

mail::6:root

lp::7:root,lp

tty::10:

nuucp::11:nuucp

users::20:root,dave,charlene,john,georgia,operator,steve,judy,wayne,jamie

nogroup:*:-2:

systech::110:dave,disdb,diskf,disjs,dispm,diskj

dba::201:oracle,john,kathy,pete

psdev::202:ps001,ps002,ps101

hrdev::203:hrprw,hrpps,hrpsl,hrpla,consult1,consult3

fsdev::209:glpmk,glpsf,consult2

fsftp::222:glpmk,glpsf,glpjh

 

Структура файла /etc/passwd

Если рассуждать логически, управление пользователями должно начаться при их наличии, то есть вначале нужно добавить пользователей в новую систему. Существует несколько способов для выполнения этой задачи. Каждый из методов изменяет содержимое файла паролей /etc/passwd. Кроме того, изменяются файл /etc/group, а также некоторые другие файлы, например, файлы запуска оболочки или файлы псевдонимов электронной почты.

Формат файла /etc/passwd практически един для всех диалектов Unix. Этот файл содержит строки следующего вида, разделенные двоеточием:

 

username:pswd:uid:gid:uid comments:directory:shell

 

то есть

 

username - имя пользователя

pswd - пароль

uid - уникальный идентификатор пользователя в пределах системы

gid - уникальный идентификатор группы в пределах системы, к которой принадлежит пользователь

uid comments - комментарий, расширенное описание пользователя, например, ФИО

directory - домашний каталог пользователя

shell - имя программы - интерпретатора команд пользователя

Имя пользователя - это то, что пользователь вводит в ответ на приглашение login:. Это поле не должно содержать символа двоеточия. Кроме того, не рекомендуется употреблять в имени точку (.), а также начинать его с символов + или -.

 

Поле пароля может быть представлено различным образом. Оно может быть пустым, указывая, что для регистрации пользователя пароль не нужен. Оно может также содержать до 13 символов зашифрованной версии пароля.

 

uid является простым числовым оюозначением отдельного пользователя. Обычно это положительное число до 65535, хотя некоторые системы распознают 32-битные идентификаторы пользователя. Некоторые идентификаторы зарезервированы для специального использования. К ним относятся 0(суперпользователь), 1-10(демоны и псевдопользователи), 11-99(системные и зарезервированные пользователи), 100+(обычные пользователи).

 

Ниже приведен пример возможного содержания файла /etc/passwd:

 

root:x:0:0:Superuser:/:

daemon:*:1:5::/:/sbin/sh

bin:*:2:2::/usr/bin:/sbin/sh

sys:*:3:3::/:

adm:*:4:4::/var/adm:/sbin/sh

uucp:*:5:3::/var/spool/uucppublic:/usr/lbin/uucp/uucico

lp:*:9:7::/var/spool/lp:/sbin/sh

nuucp:*:11:11::/var/spool/uucppublic:/usr/lbin/uucp/uucico

hpdb:*:27:1:ALLBASE:/:/sbin/sh

nobody:*:-2:60001::/:

dave:x:100:10:Dave G,13,x3911,unlisted:/usr1/dave:/bin/tcsh

charlene:x:101:10:Charlene G,14,x1800,unlisted:/usr1/charlene:/bin/tcsh

john:x:102:60:John S,2,555-1234,x1400:/usr2/john:/bin/ksh

georgia:x:103:60:Georgia S,11,x143,x143:/usr2/georgia:/bin/csh

 

Поскольку /etc/passwd обычно доступен для чтения, в целях обеспечения безопасности обычно используются схемы со скрытыми паролями. Обычно при этом зашифрованные пароли перенаправляются в файл с ограниченным доступом, который к тому же может содержать дополнительную информацию. Эта схема используется, поскольку достаточно средние машины в состоянии за приемлемое время вскрыть пароль, если пользователь выбрал его неудачно. В категорию неудачных паролей входят словарные слова, регистрационное имя, отсутствие пароля или информация, содержащаяся в поле комментария пользователя. такие пароли хранятся в файле /etc/shadow.

 

Псевдопользователи

Каждый из вариантов UNIX содержит в файле паролей строки описания псевдопользователей. Эти описания никогда не редактируются. Пользователи этих имен не регистрируются в системе и нужны лишь для подтверждения владения соответствующими им процессами. Наиболее известными являются:

daemon - Используется служебными процессами системы

bin - Дает права на владение исполняемыми файлами команд

sys - Владеет системными файлами

adm - Владеет файлами регистрации

uucp - Используется программой UUCP

lp - Используется подсистемами lp или lpd

nobody - Используется NFS

Существуют и другие псевдопользователи, например, audit, cron, mail, new или usenet. Все они нужны для работы ассоциированных с ними процессов и файлов.

 

 

----------------------------------------------------------------------------------------------------------------------------------

 

 

СЕТЕВАЯ РАБОТА

 

----------------------------------------------------------------------------------------------------------------------------------

 

Сетевые команды

---------------

 

 

При помощи ifconfig можно посмотреть надичие сетевых плат и текущий адрес компьютера.

 

Команда netstat:

 

netstat -l показывает все работающие на машине интернет сервера по ip адресам

 

netstat -an показывает то же с указанием портов

 

пишем

wget htttp://somesite/somefile.zip - забирает по http файл в текущий каталог

 

lynx - текстовой вэб браузер

 

ping url - проверяет время ответа сайта (страницы)

 

nslookup - покажет ip адрес сервера а также первичный и вторичный dns сервера на которых он прописан.

 

----------------------------------------------------------------------------------------------------------------------------------

 

СИСТЕМА

 

----------------------------------------------------------------------------------------------------------------------------------

 

Обновление портов

-----------------

 

Для фонового обновления портов и записи в лог файл результатов набираем команду

 

cvsup -g -L 2 /etc/cvsup/ports-supfile > /usr/cvsup_date.log &

 

 

----------------------------------------------------------------------------------------------------------------------------------

MAC адреса сетевых карт - ifconfig -a

----------------------------------------------------------------------------------------------------------------------------------

 

 

alias - Создает синоним команды.

bg - Запускает прерванный процесс в "фоновом" режиме.

bye - Заканчивает сеанс связи.

cat - Выводит на экран содержимое текстового файла.

cd - Изменяет "текущую" директорию.

conf - Дает возможность читать и посылать статьи в телеконференции.

decode - Восстанавливает бинарный файл, присланный по электронной почте в закодированном виде.

dir - Показывает список файлов в "домашней" директории.

du - Подсчитывает об'ем файлов в "домашней" директории, исчисляемый в килобайтах.

echo - Отображает на экран все указанное этой команде в качестве параметра.

encode - Трансформирует бинарный файл в формат 'uudecode'.

exit - Заканчивает сеанс связи.

fg - Переводит процесс из "фонового" режима в "активный" режим.

finger - Дает возможность узнать, кто из пользователей телекоммуникационной сети работает на линии в данный момент.

ftp - Позволяет получать файлы со специалицированных файл-серверов сети "Интернет".

gopher - Позволяет пользоваться одноименным информационным сервисом сети "Интернет".

head - Выдает на экран первые десять строк текстового файла.

help - Раз'ясняет смысл некоторых комманд на английском языке.

history - Показывает список использованных комманд.

id - Показывает идентификатор пользователя системы.

irc - Дает возможность пользоваться сервисом IRC (Internet Relay Chat).

joe - Текстовый редактор.

logout - Заканчивает сеанс связи.

ls - Показывает фалы в домашней директории.

mail - Дает возможность пользоваться электронной почтой.

man - Раз'ясняет смысл некоторых комманд на английском языке.

map - Включает/выключает перекодировку русских символов.

mkdir - Создает поддиректорию в "домашней" директории.

pine - Дает возможность пользоваться электронной почтой.

ping - Показывает наличие связи с определенным сервером сети "Интернет".

ps - Показывает процессы операционной системы UNIX.

pwd - Показывает полное название "текущей" директории.

sz - Пересылает файл на Ваш компьютер.

talk - Позволяет вести интерактивный диалог с пользователем сети "Интернет".

telnet - Соединяет с другими серверами сети "Интернет".

unalias - Уничтожает синоним команды.

uname - Информирует о версии операционной системы на сервере телекоммуникационной сети.

w - Дает возможность узнать, кто из пользователей телекоммуникационной сети работает на линии в данный момент.

who - Дает возможность узнать, кто из пользователей телекоммуникационной сети работает на линии в данный момент.

www - Позволяет пользоваться информационным сервисом WWW (World-Wide Web).

 

Есть такой файлик /etc/securetty

в нем можно запретить вход root`ом c любой консоли.

 

 

Команды работы с учетными записями пользователей

Создание, изменение и удаление строк в файлах паролей и групп зависит от версии операционной системы, которой Вы пользуетесь. Обычно файлы паролей редактируются непосредственно из командной строки, либо используются утилиты с графическим интерфейсом. Эти утилиты позволяют очень легко и удобно редактировать учетные записи пользователей.

Основные команды для работы с учетными записями в Linux - useradd, userdel, и usermod, а также средство редактирования файлов паролей vipw. Интерфейс команд следующий:

 

useradd [-c uid comment] [-d dir] [-e expire] [-f inactive] [-g gid]

[-m [ -k skel_dir]] [-s shell] [-u uid [-o]] username

 

userdel [-r] username

 

usermod [-c uid comment] [-d dir [-m]] [-e expire] [-f inactive]

[-g gid] [-G gid[,gid]] [-l new username] [-s shell] [-u uid [-o]] username

 

Основные параметры имеют следующие значения:

 

username - регистрационное имя пользователя. Это единственный обязательный параметр во всех командах.

uid comment - это дополнительный комментарий о пользователе с указанным именем.

dir - указывает на домашний каталог пользователя.

expire - указывает точную дату, до которой действует регистрационная запись.

inactive - указывает непрерывное число дней без регистрации в системе до того, как данная запись будет блокирована.

gid - определяет идентификатор или имя группы, к которой относится пользователь.

new_username - является заменой прежнего имени регистрационной записи.

shell - определяет оболочку интерпретатора команд для данного пользователя.

skel_dir - содержит файлы, которые должны быть скопированы в новый домашний каталог пользователя.

uid - является уникальным идентификатором пользователя, связанным с этим именем.

-m - указывает на необходимость создания нового домашнего каталога (useradd) или переноса текущего в новое место (usermod).

-o - позволяет повторяться одному и тому же идентификатору пользователя.

-g - выбирает главную группу для регистрационного имени.

-G - выбирает дополнительные группы.

-r - сообщает, что домашний каталог пользователя будет перемещен. Если домашний каталог для регистрационной записи устарел, существующие файлы будут перенесены в новый каталог.

Чтобы переместить каталог пользователя, выполните:

cd /old_dir; tar -cf - . | (cd /new_dir; tar -xpf -)

 

Сравните результаты, а затем удалите old_dir. При переносе особое внимание следует уделить скрытым файлам запуска, или дот-файлам (имена начинаются с точки). Вот наиболее важные из них:

 

.login - файл, исполняемый после регистрации в оболочках csh и tcsh.

.cshrc - файл, исполняемый после запуска новой копии оболочки csh.

.tcshrc - то же самое для оболочки tcsh.

.profile - файл, исполняемый после регистрации в оболочках sh или ksh.

.kshrc - файл, исполняемый после запуска новой копии оболочки ksh.

.bashrc - файл, исполняемый после запуска новой копии оболочки bash.

.history - содержит список последних команд, выполненных в оболочке.

.rhosts - списки удаленных машин/пользователей, допускаемых к регистрации в данной системе. Rlogin, rexec, rsh/remsh используют этот файл, чтобы разрешить регистрацию, доступ к фалам и запуск команд без ввода паролей.

.netrc - используется при автоматической регистрации в FTP.

.forward - позволяет перенаправлять почту на другие адреса, в файлы или в программы обработки.

.mailrc - стартовый файл для почтового агента, позволяющий установить опции или почтовые псевдонимы.

.exrc - файл с опциями запуска редакторов ex или vi.

.xinitrc - файл запуска для системы X Window.

При удалении регистрационного имени из файла паролей Вы должны также удалить все файлы, принадлежащие этому пользователю. Сделать это можно с помощью команды

 

find / -user username

 

Чтобы не ошибиться, Вы можете упаковать эти файлы, прежде чем удалять их. Чтобы удалить их сразу во время поиска, выполните:

 

find / -user username -exec rm {} \;

 

 

Команда смены пароля passwd

Эта команда используется для изменения паролей пользователей. Формат ее вызова:

passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]

 

Значение опций данной команды:

-k - используется для обновления только тех паролей, срок действия которых истек.

-l - блокирует указанного пользователя (доступна только администратору). Блокировка осуществляется добавлением к паролю префикса !.

stdin - принимать новый пароль из стандартного ввода.

-u - разблокирование пользователя и удаление префикса ! (доступна только администратору).

-d - отмена пароля для пользователя (доступна только администратору). Позволяет пользователю войти в систему без пароля и сменить его самостоятельно.

-n - устанавливает минимальный срок в днях до смены пароля (доступна только администратору).

-x - устанавливает максимальный срок в днях до смены пароля (доступна только администратору).

-w - устанавливает срок в днях, когда пользователь начнет получать сообщения о необходимости смены пароля(доступна только администратору).

-i - устанавливает срок в днях до момента, когда старый пароль перестанет быть активным и регистрационная запись блокируется (доступна только администратору).

-S - выводит краткую информацию о состоянии пароля (о сроке его действия). Доступна только администратору.

 

Дисковые квоты

Команда edquota используется для редактирования дисковых квот (определения доступного пространства для пользователя в файловой системе). Формат ее вызова:

edquota [ -p protoname ] [ -ug ] [ -r ] [ -F format-name ] username.

 

edquota [ -ug ] [ -F format-name ] -t

 

В командной строке можно указать одного или нескольких пользователей или групп. Для них создается временный текстовый файл, содержащий поисание всех дисковых квот. Затем его можно редактировать, изменяя квоты или установить их в 0, отменяя полностью.

Для пользователей могут быть установлены мягкие и жесткие пределы. Мягкий предел может быть превышен в течение некоторого времени, определяемого при задании квот. После истечения этого времени предел становится жестким.

 

При выходе из команды все изменения вносятся в файлы квот aquota.user или aquota.group.

 

Опции имеют следующие значения:

 

-r - Возможно редактировать квоты для удаленных файловых систем, используя службу rpc.rquotad.

-u - Редактировать квоты для пользователя.

-g - Редактировать квоты для групп.

-p protoname - Копировать квоты из настроек прототипа пользователя. Используется для установки одинаковых квот.


© Copyright 2003—2004 «A-Lex»
О проекте

 

Hosted by uCoz