Id - Показывает сводную информацию по текущему пользователю;
finger user_name - Показать информацию о пользователе user_name;
last - Показывает последних зарегистрированных пользователей;
who - Показывает имя текущего пользователя и время входа;
write - передача сообщения другому пользователю.
Изучите, с какими параметрами можно вызвать эти команды.
Виды прав доступа
Права доступа определяются по отношению к трём типам действий:
1.чтение,
2.запись и
3.исполнение.
Эти права доступа могут быть предоставлены трём классам пользователей:
1.владельцу файла (пользователю),
2.группе, которой принадлежит файл,
3.а также всем остальным пользователям, не входящим в эту группу.
Право на чтение даёт пользователю возможность читать содержимое файла или, если такой доступ разрешён к каталогам, просматривать содержимое каталога (используя команду ls). Право на запись даёт пользователю возможность записывать или изменять файл, а право на запись для каталога — возможность создавать новые файлы или удалять файлы из этого каталога. Наконец, право на исполнение позволяет пользователю запускать файл как программу или сценарий командной оболочки (разумеется, это действие имеет смысл лишь в том случае, если файл является программой или сценарием). Для каталогов право на исполнение имеет особый смысл — оно позволяет сделать данный каталог текущим, т. е. “перейти” в него, например, командой cd.
Чтобы получить информацию о правах доступа, используйте команду ls с ключом - l. При этом будет выведена подробная информация о файлах и каталогах, в которой будут, среди прочего, отражены права доступа.
Рассмотрим следующий пример:
/home/ivanov/docs# ls -l report1303
-rw-r--r-- 1 ivanov users 505 Mar 13 19:05 report1303
Первое поле в этой строке (-rw-r--r--) отражает права доступа к файлу. Третье поле указывает на владельца файла (ivanov), четвёртое поле указывает на группу, которая владеет этим файлом (users). Последнее поле — это имя файла (report1303). Другие поля описаны в документации к команде ls.
Данный файл является собственностью пользователя ivanov и группы users. Последовательность -rw-r--r-- показывает права доступа для пользователя — владельца файла, пользователей — членов группы-владельца, а также для всех остальных пользователей.
Первый символ из этого ряда (-) обозначает тип файла. Символ - означает, что это — обычный файл, который не является каталогом (в этом случае первым символом было бы d) или псевдофайлом устройства.
Следующие три символа (rw-) представляют собой права доступа, предоставленные владельцу ivanov. Символ r — сокращение от read (англ. читать), а w — сокращение от write (англ. писать). Таким образом, ivanov имеет право на чтение и запись (изменение) файла report1303.
После символа w мог бы стоять символ x, означающий наличие прав на исполнение (англ. execute, исполнять) файла. Однако символ -, стоящий здесь вместо x, указывает, что ivanov не имеет права на исполнение этого файла. Это разумно, так как файл report1303 не является программой.
Следующие три символа (r--) отражают права доступа группы к файлу. Группой-собственником файла в нашем примере является группа users. Поскольку здесь присутствует только символ r, все пользователи из группы users могут читать этот файл, но не могут изменять или исполнять его.
Наконец, последние три символа (это опять r--) отражают собой права доступа к этому файлу всех других пользователей, помимо собственника файла и пользователей из группы users. Так как здесь указан только символ r, эти пользователи тоже могут читать файл
Возможность доступа к файлу зависит также от прав доступа к каталогу, в котором находится файл. Например, даже если права доступа к файлу установлены как -rwxrwxrwx, другие пользователи не могут получить доступ к файлу, пока они не имеют прав на исполнение для каталога, в котором находится файл. Другими словами, чтобы воспользоваться имеющимися у вас правами доступа к файлу, вы должны иметь право на исполнение для всех каталогов вдоль пути к файлу.
Если вы работаете в системе, используя расширенные права суперпользователя root (или наделены ими), вы сможете изменять права доступа у любого файла и каталога, принадлежащих любому пользователю системы. Если вы являетесь обычным пользователем, вы сможете назначать или изменять права доступа только на созданные вами каталоги и файлы.
Для изменения прав доступа к файлу или каталогу используется команда chmod.
Команда chmod изменяет права доступа к указанным файлам (среди которых могут быть каталоги) в соответствии с указанным режимом. Режим может быть задан в абсолютном или символьном виде.
Абсолютный вид - восьмеричное число, являющееся поразрядным ИЛИ следующих режимов (названы не все режимы):
00400 Доступен для чтения владельцем.
00200 Доступен для записи владельцем.
00100 Доступен для выполнения (в случае каталога - для просмотра) владельцем.
00040 Доступен для чтения членами группы.
00020 Доступен для записи членами группы.
00010 Доступен для выполнения (просмотра) членами группы.
00004 Доступен для чтения прочими пользователями.
00002 Доступен для записи прочими пользователями.
00001 Доступен для выполнения (просмотра) прочими пользователями.
Символьный вид основан на однобуквенных обозначениях, которые определяют класс доступа и права доступа для членов данного класса. Права доступа к файлу зависят от идентификатора пользователя и идентификатора группы, в которую он входит. Режим в целом описывается в терминах трех последовательностей, по три буквы в каждой:
Владелец | Группа | Прочие |
(u) | (g) | (o) |
rwx | rwx | rwx |
Для задания режима доступа в символьном виде используется синтаксис:
[кому] операция права
Часть кому есть комбинация букв u, g и o (владелец, члены группы и прочие пользователи соответственно). Если часть кому опущена или указано a, то это эквивалентно ugo.
Операция может быть: + (добавить право), - (лишить права), = (в пределах данного класса присвоить права абсолютно, то есть добавить указанные права и отнять неуказанные).
Права - любая осмысленная комбинация следующих букв (не все):
r Право на чтение.
w Право на запись.
x Право на выполнение (поиск в каталоге).
Например, команда chmod u+w,go+x f1
добавит для владельца право писать в файл f1, а для членов группы и прочих пользователей - право выполнять файл. Права устанавливаются в указанном порядке.
Изменить режим доступа к файлу может только его владелец или суперпользователь.
Лабораторная работа № 2.А Скачайте программу putty ( putty.org ) (не требует установки).
Адрес сервера при подключении по ssh — 195.209.66.3.
Логин и пароль совпадает с вашими при входе в профиль.
Краткий справочник команд http://hpc.icc.ru/documentation/cmnds.pdf
Выполнить с помощью терминала следующие задания:
1. Определить путевое имя рабочего каталога. Какое путевое имя получили (относительное или абсолютное)?
2. Создать в рабочем каталоге Вашего пользовательского раздела диска каталог Glava1, а в нем – подкаталоги Glava2 и Glava3. В подкаталоге Glava3 создать текстовый файл myname.txt, содержащий три строчки по образцу:
Фамилия Имя Отчество
Факультет Курс Номер группы
Часы Минуты День Месяц Год
2. Скопировать файл myname.txt в подкаталог Glava2 под этим же именем и в подкаталог Glava3 под именем fio.txt.
3. Сделайте каталог Glava1 общедоступным (все пользователи могут читать и записывать) разделяемый каталогом.
4. Переименовать файл в подкаталоге Glava2 в myname1.txt.
5. Отредактировать файл fio.txt так, чтобы он содержал информацию на изучаемом Вами иностранном языке, а имя и отчество были бы сокращены до инициалов.
6. Объединить содержимое файлов myname1.txt и fio.txt в файл result.txt, который должен располагаться в каталоге Glava1.
7. Удалить с диска каталог Glava2.
8. Используя средства перенаправления ввода-вывода в команде dir создать в каталоге Glava1 файл myinfo.txt, в котором должна содержаться информация о содержимом каталога Glava1, отсортированная по именам файла.
9. На файл myinfo.txt раздать следующие права: Владелец может читать и записывать в файл. Пользователи группы владельца могут только читать. Остальные не имеют никаких прав. Попробуйте просмотреть содержимое папки.
10. Переместить в корневой каталог каталог Glava3, а затем скопировать на нее каталог Glava1 вместе со всем его содержимым.
11. В каталоге Glava1 создать файл hello.c, содержащий текст:
#include <stdio.h>
main()
{
printf("hello world! \n ");
}
Скомпилировать его с помощью gcc hello.c. В результате появится исполняемый файл a.out. Запретите владельцу исполнять файл a.out. Попробуйте теперь запустить его на выполнение (./a.out).
12. Все созданные Вами файлы с расширением.txt скопировать в корневой каталог с теми же именами, но с расширениями.ttt.
13. Создать на файл Glava1\myname.txt жесткую и символьную ссылки. Все объекты оставьте в том же каталоге, что и файл-оригинал.
14. Выведите полную информацию о содержимом каталога Glava1.
15. Удалите файл Glava1\myname.txt
16. Выведите полную информацию о содержимом каталога Glava1.
17. Создайте символьную ссылку на рабочем столе на любой глубоко вложенный каталог файловой структуры.
18. Получить информацию по командам ls и cd с помощью утилит man и info. Изучить структуру man-документа. Получить краткую информацию по командам ls и cd с помощью команды whatis и apropos. В чем различие?
19. Выведите список пользователей, которые находятся сейчас в системе.
20. Выведите информацию о своем пользователе. В каких группах Вы состоите? Выясните какие права доступа Вы имеете к своему домашнему каталогу, каталогам /home и /?
21. Напишите другому пользователю (например рядом сидящему студенту) сообщение о том, что Вы уже справились с лабораторной работой.
Командные файлы
Командный файл (скрипт или сценарий) - это текстовый файл, состоящий из команд интерпретатора. При запуске этого файла последовательно выполняются все команды, содержащиеся в нем.
Как файл его можно создать командой cat или использовать текстовый редактор, например, vi. Если вы работаете в графической оболочке, то воспользуйтесь, например, редактором Leafpad.
Cоздадим файл с именем cmd (в домашнем каталоге), в который запишем следующие команды:
echo How do you do! #вывод строки на экран, приветствие
date #вывести текущую дату
pwd #вывести текущий каталог
ls #вывести оглавление текущего каталога
Всё что за знаком # это коментарий и интерпритатором не воспринимается.
Запустить этот файл можно или используя команду sh ~/cmd. Или сделав этот файл исполняемым: chmod +x ~/cmd, т.е. в правах доступа к файлу для всех пользователей (настройка по умолчанию) разрешить выполнение этого файла (+х).
Любой bash-скрипт должен начинаться со строки: #!/bin/bash.
В этой строке после #! указывается путь к bash-интерпретатору, поэтому если он у вас установлен в другом месте (где, вы можете узнать набрав whereis bash) поменяйте её на ваш путь.
Коментарии начинаются с символа # (кроме первой строки).
В bash переменные не имеют типа(о них речь пойдет ниже)