Права доступа+опции монтирования+NTFS (как зайти root'ом, как стартовать иксы из-под рута и т.д.)

Готовые решения для многих вопросов, которые очень часто задаются снова и снова.

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

Аватара пользователя
Juliette
Сообщения: 5058
Статус: ROSA Lab
ОС: Ubuntu LTS, Mandriva 2011

Права доступа+опции монтирования+NTFS

Сообщение Juliette » 19.12.2006 11:51

Значит, создаю место, куда можно засылать по вопросам, касающимся прав доступа и тому подобным. Делаю текст большой специально для буквальности и топорности - не говорите потом, что найти невозможно. Думаю, движок форума это переварит :)
Отсебятины не постю, материалы взяты отсюда: Введение в администрирование UNIX by Алексей Федосеев и по mount таблицы отсюда

По поводу работы с NTFS под линухом, проходим по ссылкам:

http://ntfs-3g.org/
http://linux-ntfs.org/

Обсуждение вопросов, возникающих при работе с NTFS, в основном в этой теме, велкам:
Запись в раздел NTFS

Команды по управлению правами

chmod
Команда используется для изменения прав доступа к файлам.

Команда chmod имеет следующий синтаксис:

Код: Выделить всё

chmod [-fhv] [-R [-H | -L | -P]] права_доступа файл ...


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

Права доступа в числовой форме задаются в виде восьмеричного числа – битовой маски, являющегося суммой одного или нескольких следующих значений:
4000 s - - - - - - - - - установка бита SUID
2000 s - - - - - - - - - установка бита SGID
1000 t - - - - - - - - - установка sticky-бита
400 - r - - - - - - - - право на чтение для владельца
200 - - w - - - - - - - право на запись для владельца
100 - - - x - - - - - - право на выполнение для владельца
040 - - - - r - - - - - право на чтение для группы владельца
020 - - - - - w - - - - право на запись для группы владельца
010 - - - - - - x - - - право на выполнение для группы владельца
004 - - - - - - - r - - право на чтение для остальных пользователей
002 - - - - - - - - w - право на запись для остальных пользователей
001 - - - - - - - - - x право на выполнение для остальных пользователей

Права доступа в символьном виде задаются с помощью следующей грамматики:
права_доступа ::=выражение [, выражение ...]
выражение ::=[субъект ...] [действие ...] действие
действие ::=операция [права ...]
субъект ::=a | u | g | o
операция ::=+ | - | =
права ::=r | s | t | w | x | X | u | g | o

Пример использования. Для того, чтобы для файла test.txt сбросить все права для группы владельца и остальных пользователей, а для владельца установить права на чтение и запись, можно использовать следующие команды (они эквивалентны):

Код: Выделить всё

chmod u=rw,go= test.txt,  chmod a=,u=rw test.txt,  chmod 600 test.txt.

Результат:

Код: Выделить всё

user@desktop$ ls -l test.txt
     -rw-r--r--  1 pp  ppgroup  0  7 дек 00:34 test.txt
     user@desktop$ chmod a=,u=rw test.txt
     user@desktop$ ls -l test.txt
     -rw-------  1 pp  ppgroup  0  7 дек 00:34 test.txt


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

Код: Выделить всё

chmod g+w,o-r test.txt
Результат:

Код: Выделить всё

user@desktop$ ls -l test.txt
     -rw-r--r--  1 pp  ppgroup  0  7 дек 00:34 test.txt
     user@desktop$ chmod g+w,o-r test.txt
     user@desktop$ ls -l test.txt
     -rw-rw----  1 pp  ppgroup  0  7 дек 00:34 test.txt


chown
Команда используется для смены владельца/группы файлов.

Команда имеет следующий синтаксис:

Код: Выделить всё

chown [-fhv] [-R [-H | -L | -P]] владелец[:группа] файл ...

     chown [-fhv] [-R [-H | -L | -P]] :группа файл ...

Владельца файла может изменить только суперпользователь. Группу может изменить владелец и суперпользователь. В качестве имени владельца/группы берется первый аргумент, не являющийся опцией. Если задано только имя пользователя (или числовой идентификатор пользователя), то данный пользователь становится владельцем каждого из указанных файлов, а группа этих файлов не изменяется. Если за именем пользователя через двоеточие следует имя группы (или числовой идентификатор группы), без пробелов между ними, то изменяется также и группа файла.

Для изменения группы-владельца файла test.txt на guest необходимо ввести следующую команду:

Код: Выделить всё

chown :guest test.txt

Результат:

Код: Выделить всё

user@desktop$ ls -l test.txt
     -rw-------  1 pp  ppgroup  0  7 дек 00:34 test.txt
     user@desktop$ chown :wheel test.txt
     user@desktop$ ls -l test.txt
     -rw-------  1 pp  wheel  0  7 дек 00:34 test.txt


Команды по управлению пользователями

su
Команда используется для временной подмены идентификатора пользователя.

Команда имеет следующий синтаксис:

Код: Выделить всё

su [-] [-flms] [-c класс] [пользователь [аргументы]]


Команда su позволяет пользователю временно стать другим пользователем. Если не указан параметр пользователь, то используется значение по умолчанию - суперпользователь. Если указанному пользователю назначен пароль, то потребуется его ввести, прежде чем стать другим пользователем.

Для того, чтобы стать суперпользователем, нужно ввести команду su без параметров:

Код: Выделить всё

 user@desktop$ su
     Password:
     desktop#


Чтобы запустить какую-либо программу под root'ом, нужно стать суперпользователем (см. выше) и в той же терминали набрать название бинарника программы (часто оно совпадает с названием самой программы); т.е. чтобы, например, отредактировать важные конфиги с рутовскими правами записи, нужно просто из-под рута запустить любимый текстовый редактор, или файловый менеджер с прикрученным редактором (напр. mc, Rox) - и, соответственно, отредактировать файл :) .

sudo
Программа sudo является логическим развитием программы su и позволяет как переходить в сеанс суперпользователя, так и запускать отдельные программы от имени суперпользователя.

Программа sudo имеет синтаксис:

Код: Выделить всё

sudo [-HSb] [-u пользователь] {-s | команда}


. Можно использовать следующие опции:

-H переменная окружения HOME изменяется в соответствии с выбранным пользователем;
-b команда исполняется на заднем фоне;
-s вместо команды запускается командная оболочка данного пользователя.

Главным достоинством команды sudo является возможность гибкого конфигурирования – на какие программы каким пользователям разрешено повышение превилений. Конфигурация хранится в файле /etc/sudoers, рассмотрение формата которого выходит за рамки этих лекций.

passwd
Команда используется для изменения пароля.

Команда имеет следующий синтаксис:

Код: Выделить всё

passwd [-l] [пользователь]


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

useradd
Команда предназначена для добавления нового регистрационного имени пользователя в системе.

Команда имеет следующий синтаксис:

Код: Выделить всё

useradd [-u идентификатор [-o] [-i]] [-g группа] [-G группа[[,группа] . . .]] [-d каталог] [-s shell] [-c комментарий] [-m [-k skel_dir]] [-f inactive] [-e expire] [-p passgen] [-a событие[, . . .]] регистрационное_имя


userdel
Команда предназначена для удаления регистрационных имен пользователей из системы.

Команда имеет следующий синтаксис:

Код: Выделить всё

userdel [-r] [-n месяцев] регистрационное_имя


Команда userdel удаляет определение регистрационного имени пользователя из системы. Она удаляет определение указанного регистрационного имени и выполняет соответствующие изменения в регистрационных файлах и файловой системе. Команда также запоминает идентификационный номер удаляемого пользователя (UID) в файле /etc/security/ia/ageduid, так что этот идентификатор не будет повторно использован на протяжении определенного периода времени. Эта практика не использования идентификатора пользователя называется устареванием идентификатора (UID aging). Для удаления домашней директории пользователя необходимо указать флаг -r. Параметр месяцев задает, сколько месяцев будет запрещено использовать удаляемый идентификатор.

usermod
Команда предназначена для изменения регистрационной информации о пользователе в системе.

Команда имеет следующий синтаксис:

Код: Выделить всё

usermod [-u идентификатор [-U] [-o]] [-g группа] [-G группа[[,группа] . . .]] [-d каталог [-m]] [-s shell] [-c комментарий] [-l новое_рег_имя] [-f inactive] [-e expire] [-p passgen] [-a [оператор]событие[, . . .]] регистрационное_имя


Команда предназначена для изменения регистрационной информации о пользователе в системе.

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

Команда имеет следующий синтаксис:

Код: Выделить всё

 groupadd [-g идентификатор [-o]] группа


Новую группу может добавить только администратор. Команда groupadd создает новое определение группы в системе путем добавления соответствующей записи в файл /etc/group.

groupdel
Команда используется для удаления определения группы из системы.

Команда имеет следующий синтаксис:

Код: Выделить всё

groupdel группа


Команда groupdel удаляет определение группы из системы путем удаления записи о соответствующей группе из файла /etc/group. Она, однако, не удаляет идентификаторо группы (GID) из файла паролей; удаленный GID действует для всех файлов и каталогов, которые его имели.

groupmod
Команда предназначена для изменения определения группы в системе.

Команда имеет следующий синтаксис:

Код: Выделить всё

groupmod [-g идентификатор [-o]] [-n имя] группа


Команда groupmod изменяет определение указанной группы путем изменения соответствующей записи в файле /etc/group. Новое имя группы задается в параметре группа, новый идентификатор группы задается в параметре идентификатор. Опция -o позволяет задать дублирующийся идентификатор группы. Если перед группой стоит символ «+», (например, +student), определение группы администрируется сетевой информационной службой (Network Information Service - NIS). В этом случае, значение идентификатора группы берется из базы данных NIS. Для таких групп использование опций -g или -o вызовет выдачу сообщения о синтаксической ошибке.


Вход в систему и завершение сеанса

Процесс аутентификации в UNIX.

Приглашение входа в систему.

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

Код: Выделить всё

Welcome to desktop / tty1
       desktop login: user
       Password:
       Last login: Wed Dec 07 00:20:09 2006 from tty1
       user@desktop ~ $


При входе в систему в графическом режиме (через X11), пользователю вместо командной строки предоставляется графический десктоп.

2. Для завершения сеанса работы в командной строке необходимо ввести команду exit:

Код: Выделить всё

 user@desktop ~ $ exit


Изучение базовых прав доступа

Базовые права доступа в UNIX, их просмотр и изменения.

1. Для просмотра прав доступа можно использовать команду ls с ключом вывода расширенной информации: ls -l.

Код: Выделить всё

user@desktop ~ $ ls -l
       drwxr-xr-x   1 user users   22 Дек 19 11:18 test/
       -rw-r--r--   1 user users   90 Сен 19 00:20 test.txt

Особый интерес представляют: первая колонка (права доступа), третья и четвётрая – владелец и группа владельцев соответственно.

2. Рассмотрим исполняемый файл ls -l /bin/bash.

Код: Выделить всё

user@desktop ~ $ ls -l /bin/bash
       -rwxr-xr-x  1 root root 746544 Дек 21 13:40 /bin/bash*

Исполняемые файлы в UNIX определяются наличием специального бита прав доступа.

3. Для директории права на исполнения трактуются по-другому. Рассмотрим права директории /tmp ls -ld /tmp:

Код: Выделить всё

user@desktop ~ $ ls -ld /tmp
       drwxrwxrwt  26 root root 5168 Дек 22 20:04 /tmp/

Директория имеет дополнительный sticky-bit, определающий права на создание и удаление файлов в директории.

4. Изменение файла с недостатком прав приводит к ошибке доступа. Например, команда: rm /bin/bash.

Код: Выделить всё

user@desktop ~ $ rm /bin/bash
       rm: удалить защищенный от записи обычный файл `/bin/bash'? y
       rm: невозможно удалить `/bin/bash': Permission denied

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

5. Изменение прав доступа производится с помощью команды chmod. Для задания файлу прав только для чтения воспользуемся командой: chmod a=r test.txt.

Код: Выделить всё

user@desktop ~ $ chmod a=r test.txt


6. Для лишения всех прав группы владельцев и остальных пользователей воспользуемся командой: chmod go-rwx test.txt.

Код: Выделить всё

user@desktop ~ $ chmod go-rwx test.txt


Переход в режим суперпользователя

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

1. Некоторые исполняемые программы обладают специальным suid-битом, например, программа passwd, рассмотрим права доступа к этому исполняемому файлу: ls -l /bin/passwd.

Код: Выделить всё

user@desktop ~ $ ls -l /bin/passwd
       -rws--x--x  1 root root 28660 Янв  8 13:05 /bin/passwd*


2. Запускаются suid-программы от имени владельца файла. В этом можно убедиться, если запустить команду passwd, а затем на другом терминале сделать ps aux | grep passwd:

Код: Выделить всё

user@desktop ~ $ passwd
       Changing password for user
       (current) UNIX password:
       ...
       user@desktop ~ $ ps aux | grep passwd
       root     12937  0.0  0.1   3228  1012 pts/2    S+   23:28   0:00 passwd
       user     12989  0.0  0.1   2740   748 pts/3    R+   23:28   0:00 grep passwd


3. Для длительной работы в режиме суперпользователя обычно используют команду su. Используем параметр -, чтобы проинициализировать окружение суперпользователя: su -. Для того, чтобы перейти в режим суперпользователя, необходимо знать его пароль.

Код: Выделить всё

user@desktop ~ $ su -
       Password:
       desktop ~ #

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

4. Для завершения сеанса суперпользователя необходимо воспользоваться командой exit:

Код: Выделить всё

desktop ~ # exit
       logout
       user@desktop ~ $


Изучение базы данных пользователей

Где и каким образом хранится информация о пользователях системы.

1. Данные о зарегистрированных в системе пользователях хранятся в файле /etc/passwd. Рассмотрим его содержимое cat /etc/passwd:

Код: Выделить всё

user@desktop ~ $ cat /etc/passwd
       root:x:0:0:root:/root:/bin/bash
       bin:x:1:1:bin:/bin:/bin/false
       daemon:x:2:2:daemon:/sbin:/bin/false
       adm:x:3:4:adm:/var/adm:/bin/false
       ...

Подробную информацию о формате этого файла можно получить на соответствующей странице руководств: man 5 passwd.

2. Аналогичным образом данные о группах хранятся в файле /etc/group. Рассмотрим его содержимое cat /etc/group:

Код: Выделить всё

 user@desktop ~ $ cat /etc/group
       root:x:0:root
       bin:x:1:root,bin,daemon
       daemon:x:2:root,bin,daemon
       sys:x:3:root,bin,adm
       ...


Добавление и удаление пользователей

Администрирование пользователей системы: добавление новых пользователей, удаление существущих, изменение параметров пользователей. Такие изменения учётных записей пользователей доступны только суперпользователю.

1. Для добавления новых пользователей используется команда useradd. При этом в качестве параметров можно указать домашнюю директорию и командную оболочку пользователя:

Код: Выделить всё

useradd testuser -d /home/users/testuser -s /bin/sh
, результат можно увидеть следующим образом: cat /etc/passwd | grep testuser.

Код: Выделить всё

desktop ~ # cat /etc/passwd
       testuser:x:1003:1003::/home/users/testuser:/bin/sh


2. С помощью команды passwd можно задать пароль для нового пользователя: passwd testuser.

Код: Выделить всё

desktop ~ # passwd testuser
       New UNIX password:
       Retype new UNIX password:
       passwd: пароль успешно обновлён


3. Для изменения параметров учётной записи можно отредактировать файл /etc/passwd, однако более корректным способом является использование команды usermod. Например, для изменение командной оболочки пользователя на /bin/false приведёт к невозможности его входа в систему: usermod -s /bin/false testuser.

Код: Выделить всё

 desktop ~ # usermod -s /bin/false testuser


4. Удаление пользователя производится с помощью команды userdel: userdel testuser.

Код: Выделить всё

desktop ~ # userdel testuser


Команда mount
Опции и назначение


-f Имитирует монтирование файловойсистемы. используется для проверки возможности монтирования файловой системы
-v Текстовый режим. Команда mount выдаёт описания действий, которые выполняет. Совместно -f используется для выявления проблем, возникающих при монтировании файловой системы.
-w Монтирует файловою систему с правом на чтение и запись.
-r Монтирует файловою систему с правом только на чтение.
-n Монтирует файловою систему без записи соответствующей строки в файле mtab
-t тип Задаёт тип монтируемой файловой системы. Типы файловых систем перечисленны ниже.
-a Монтирует все файловые системы, перечисленные в файле /etc/fstab
-o список_опций Монтирует файловою систему с учетом списка опций. Список опций (через запятую) даётся после (сокращённый список опций приведен ниже, а полный - в диалоговом руководстве по команде mount)

Опции команды mkfs
Опции и описание

количество_блоков Количество блоков для файловой системы; 1440 блоков для дискеты ёмкостью 1.44 Мбайт.
-t тип файловой_системы Задаёт тип форматируемой файловой системы; по умолчанию принимается стандартная файловая система OC Linux (ext2)
fs -опции Опции специфичные для файловой системы данного типа
-V Текстовый режим; выдаётся описание каждого действия, выполняегого программой mkfs
-v Вывод диагностических сообщений в процессе построения файловой системы
Перед форматированием проверяет раздел на предмет наличия дефектных блоков
-l имя_файла Читает список дефектных блоков


Типы файловых систем
Опции и назначение

ext Ранние версии файловые системы Linux, уже не используются
ext2 Стандартная Файловая система Linux, поддерживаются длинные имена и большие размеры файлов
ext3 или 3-я расширенная файловая система — журналируемая, основана на ext2
ReiserFS — журналируемая файловая система, разработанная специально для Linux компанией Namesys под руководством Ганса Рейзера
xiaf Файловая система Xiaf
msdos Файловая система для разделов MS-DOS
hpfs Файловая система для разделов OS/2
proc Используется операционной системой для процессов
nfs Сетевая файловая система, монтируемая из удалённых систем
umsdos Файловая система UMS-DOS
swap Раздел или файл свопинга OC Linux
sysv Файловая система Unix Systen V
iso9660 Файловая система для монтирования CD-ROM
vfat Файловая система FAT-32


подробнее см.ru_wiki

Опции, используемые в команде mount и в файле /etc/fstab
Опции и описание

async Весь ввод-вывод в файловую систему должен производиться асинхронно
auto Файловая система может монтироваться командой mount c щпцией -a
defaults Использовать по умалчанию опции: rw, suid, dev, exec, auto, nouser,async
dev Файлы байт-ориентированных и блок-ориентированных устройств в файловой системе интерпретируются как специальные файлы
noauto Файловая система может монтироваться только явно. Опция -a не приведёт к монтированию файловой системы
exec Разрешает выполнение двоичных файлов
remount побует перемонтировать уже смонтированную файловою систему. Обычно используется для изменения опций монтирования файловой системы, особенно для того, чтобы расширить права доступа (вместо прав только на чтение установить права на чтение/запись)
ro Монтирует файловою систему только на чтение
rw Монтирует файловою систему для чтения и записи
suid Позволяет задействовать биты смены идендификатора пользователя и смены идендификатора группы
sync Весь ввод-вывод в файловою систему должен производиться синхронно
user Позволяет непривилигированному пользователю монтировать файловою систему. Имя пользователя, смонтировавшего систему, пишется в mtab, чтобы он снова смог отмонтировать систему. Для таких пользователей монтирование всегда выполняется с опрциями noexec, nosuid, nodev (подробнее - man mount)
users Позволяет каждому пользователю монтировать и размонтировать файловую систему. Для таких пользователей монтирование всегда выполняется с опрциями noexec, nosuid, nodev (подробнее - man mount)
nodev Файлы байт-ориентированных и блок-ориентированных устройств в файловой системе не интерпретируются как специальные файлы
nosuid Не позволяет задействовать биты смены идентификатора пользователя и смены идентификатора группы
nouser Запрещает непривилигированному пользователю монтировать файловую систему

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

По многочисленным просьбам трудящихся кайла и лопаты клавы и мышки, ниже приводится информация о том, как запустить иксы из-под рута.
Самый простой и железный способ, это ввести в консоли логин root и его соответственный пароль, не забыв нажать <enter>, после чего набираем в этой же консоли startx <enter>, вдруг чего-нибудь да запустится. Я не в курсе, есть ли дистрибутивы, в которых данная операция запрещена каким-то образом.

Далее, для того, чтобы стартовать KDE из-под рута:
ищем файл kdmrc
обычно он лежит либо в /usr/share/config/kdm/ либо в /etc/kde/kdm/
в этом файле ищем:

Код: Выделить всё

AllowRootLogin=false

меняем на:

Код: Выделить всё

AllowRootLogin=true

не забываем сохранить :)
затем запускаем kcontrol ---> редактирования логина для kdm --> заходим как superuser, добавляем root'а в список, (по умолчанию его там нет)

GNOME
опять же ищем файл gdm.conf, он может лежать, например, в /etc/gdm
также меняем

Код: Выделить всё

AllowRoot=false

на

Код: Выделить всё

AllowRoot=true

в секции [security]
не забываем сохранить :)

Для выпрямления собственной кармы вынуждена сообщить, что если вдруг у вас чего-то сломается совершенно неожиданно, то вспомните, как мама с папой вам говорили: "Дети, не сидите под рутом!" Но вы их не слушали...

Ссылки по документации на KDM и GDM:
Gnome Display Manager Reference Manual
The kdm Handbook

Спасибо сказали:

Аватара пользователя
(asper
Бывший модератор
Сообщения: 1661
Статус: nano vi sed awk !
ОС: Работает как часы !

Re: Права доступа+опции монтирования+NTFS

Сообщение (asper » 19.12.2006 19:57

круто только наверное SUID и SGID , опечаточка вышла
а вообще клёва вот бы мне в начале своего пути такое почитать было.


пофиксила очепяточку, спасибо на добром слове :)
Сомнительно доброе привидение
Спасибо сказали:

AlexLinuxoid
Сообщения: 127
ОС: Ubuntu 9.10

Re: Права доступа+опции монтирования+NTFS

Сообщение AlexLinuxoid » 08.01.2007 13:34

это все хорошо и интересно конечно, но похоже больше не на форум а на faq. Согласен такое надо читать до а не после мучений по запуску например программ из под рута
Ну наконец то на работе и дома живет линукс!!! Урааааа!!!!!
Спасибо сказали: