$ passwd
changing password for gr40812_9
Current Password:
New password:
Retype new password:
$ passwd
changing password for gr40812_9
Current Password:
Sorry!
$ passwd root
passwd: sorry, only root may change another user's password
$ passwd gr4081/1
passwd: sorry, only root may change another user's password
Суперпользователь может назначать пароль любому пользователю, при этом знания старого пароля не требуется.
# passwd mary
changing password for mary
New password:
Retype new password:
3.6. Изучить команды изменения прав доступа и владельца chmod, chown на примере специально созданного для этих целей каталога с файлами. Ознакомиться с флагом SUID. Экспериментально установить, как формируются итоговые права на использование файла, если права пользователя и группы, в которую он входит, различны.
Информация о флаге SUID будет приведена в п.3.7.
$ ls
for_mode.txt myfile
$ ls -l
total 1
-rw--w-r-- 1 mary 100 7 Dec 08 21:47 for_mode.txt
-rw-rw-r-- 1 mary 100 0 Dec 09 04:49 myfile
Лишим пользователя права на чтение.
$ chmod u-r myfile
$ ls -l
total 1
-rw--w-r-- 1 mary 100 7 Dec 08 21:47 for_mode.txt
--w-rw-r-- 1 mary 100 0 Dec 09 04:49 myfile
Добавим пользователю, группе и остальным право на запись.
$ chmod g+x,u+r,o+w myfile
$ ls -l
total 1
-rw--w-r-- 1 mary 100 7 Dec 08 21:47 for_mode.txt
-rw-rwxrw- 1 mary 100 0 Dec 09 04:49 myfile
Установим для группы права: право на чтение.
$ chmod g=r myfile
$ ls -l
total 1
-rw--w-r-- 1 mary 100 7 Dec 08 21:47 for_mode.txt
-rw-r--rw- 1 mary 100 0 Dec 09 04:49 myfile
3.7. Разработать программу-шлюз для доступа к данным другого пользователя при отсутствии прав на чтение информации (используя флаг SUID).
Атрибут (флаг) SUID позволяет изменить права пользователя при запуске на выполнение файла с установленным SUID. При этом привилегии будут изменены (обычно расширены) лишь на время выполнения и только в отношении этой программы.
Обычно запускаемая программа получает права доступа к системным ресурсам на основе прав доступа пользователя, запустившего программу. Установка флага SUID изменяет это правило, назначая права доступа исходя из прав доступа владельца файла.
Ниже приведен текст программы-шлюза, позволяющей увидеть содержимое файла.
#include <stdio.h>
main (int argc, char *argv[])
{
FILE *file_stream;
int end_f, for_close;
char buf;
if (argc>1)
{
file_stream=fopen(argv[1],"r");
if (file_stream==NULL)
printf ("Can't open file %s.\n", argv[1]);
else
{
printf ("File %s is opened.\n", argv[1]);
while(1)
{
end_f=fscanf(file_stream, "%c", &buf);
if (end_f!=EOF)
printf ("%c", buf);
else
break;
}
for_close=fclose(file_stream);
if (for_close!=0)
printf ("Can't close file %s.\n", argv[1]);
else
printf ("\nFile %s closed.\n", argv[1]);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.