chown - Разница между пользователем и пользователем: пользователь

12

В чем разница между:

sudo chown $USER:$USER

а также

sudo chown $USER

Почему это 2 раза? Один пользователь не прав? Когда я смотрю на разрешения с помощью namei -l, я часто вижу такие вещи, как root rootили proxy proxy.

Почему владелец должен быть определен и указан 2 раза?

TheBro21
источник

Ответы:

15

Команда chown используется для изменения владельца и владельца группы файла или каталога. Для использования этой команды требуются привилегии суперпользователя. Синтаксис chown выглядит следующим образом:

chown [owner][:[group]] file...

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

chown owner file пример:

chown bob file --> Changes the ownership of the file from its current owner to user bob.

chown owner:group file пример:

chown bob:users file --> Changes the ownership of the file from its current owner to user bob and changes the file group owner to group users.

chown :group file пример:

 chown :admins file --> Changes the group owner to the group admins. The file owner is unchanged.

chown owner: file пример:

chown bob: file --> Change the file owner from the current owner to user bob and changes the group owner to the login group of user bob.

Пожалуйста, прочитайте этот хороший учебник https://www.linode.com/docs/tools-reference/linux-users-and-groups . Это показывает некоторую информацию о пользователе, группах, разрешениях, ...

Maythux
источник
Спасибо. Тем не менее, какая польза даже от использования групп? Это то, что все пользователи grouo владеют им, а не только Боб?
TheBro21
Предположим, вы хотите дать разрешение некоторым пользователям, кроме владельца !! Вот почему используйте группы, вы можете создать группу для них и дать ей разрешения
Maythux
Группы нужны в основном на серверных компьютерах, которые используются для нескольких пользователей. Скажем, у вас есть сервер, на котором люди, работающие в вашей компании в проекте a и проекте b, имеют учетные записи пользователей. Теперь вы можете предоставить группе компаний разрешение на доступ к файлам, к которым должен иметь доступ каждый, и установить право собственности на все файлы проекта a на группу «проект а». Таким образом, никто из проекта b не сможет получить доступ к файлам проекта.
til_b
Группы нужны и на рабочем столе, например, для sudo, dialout, сканирования и т. Д.
Pilot6
Если пользователь является владельцем, будет ли sudoкогда-либо необходимо выполнить файл?
Матфея
5

Это не так user:user, но user:group.

Это формат команды

chown [OPTION]... [OWNER][:[GROUP]] FILE...

Группа пользователей может включать много пользователей. Вот некоторая информация относительно групп:

Linux использует группы как способ организации пользователей. Группы организуют коллекции учетных записей, прежде всего, в качестве меры безопасности. Управление членством в группе осуществляется через файл / etc / group, который показывает список групп и их членов. У каждого пользователя есть группа по умолчанию или основная группа. Когда пользователь входит в систему, членство в группе устанавливается для его основной группы. Это означает, что когда пользователь запускает программу или создает файл, и файл, и запущенная программа будут связаны с текущим членством пользователя в группе. Пользователь может получить доступ к другим файлам в других группах, если они также являются членами этой группы и установлены права доступа. Чтобы запустить программы или создать файл в другой группе, пользователь должен выполнить команду newgrp, чтобы переключить свою текущую группу.

Файл принадлежит пользователю и группе. По умолчанию он принадлежит пользователю, который создал файл, и его группе по умолчанию, если только он не был изменен.

В вашем случае пользователь rootявляется членом группы root.

Pilot6
источник
В чем разница между пользователем и группой? Я не вижу разницы между rootи root rootчто делает группа? Я понимаю раздел владельца хотя
TheBro21
Когда вы добавляете пользователя в linux, он создает группу с таким именем. Группа содержит пользователей. Допустим, у вас есть бухгалтерия, и вы хотите, чтобы ваши бухгалтерии предоставили доступ для чтения и записи. Вы можете добавить всех людей в группу учетных записей и дать разрешение на чтение и запись в соответствующую папку / файл.
dedunumax
Если вы запустите cut -d: -f1 /etc/groupкоманду, вы увидите полный список групп в вашей системе. unix.stackexchange.com/questions/153390/… может помочь вам понять, почему существует группа с именем пользователя
dedunumax,
2

man chownдает описание и использование и другую полезную информацию о chownкоманде.

NAME
       chown - change file owner and group

SYNOPSIS
       chown [OPTION]... [OWNER][:[GROUP]] FILE...
       chown [OPTION]... --reference=RFILE FILE...

Из информации, предоставленной man-страницей, мы можем знать, что chown $USER:$USERизменяется владелец и группа целевого файла $USER, в то время как chown $USERизменяется только владелец целевого файла $USER, оставляя группу целевого файла без изменений.

Подробности (со страницы руководства) следуют:

Owner  is  unchanged  if  missing.   Group is unchanged if missing, but changed to
login group if implied by a ':' following a symbolic OWNER.  OWNER and  GROUP  may
be numeric as well as symbolic.

Так что chown $USER:$USERможно сократить как chown $USER:.

Выходы , как root rootот namei -lкоманды означает , что владелец и группа этого файла оба установлены в root. Это не владелец определен или указан дважды. Владелец и группа - это две взаимосвязанные, но разные концепции. И файл всегда имеет владельца и группу.


Что касается использования chownкоманды, велика вероятность того, что требуются привилегии суперпользователя, поскольку при использовании chownкоманды можно передать право собственности на файл . Однако это не всегда правда.

Скажем, у нас есть пользователь с именем «test», который принадлежит к нескольким группам. idКоманда дает следующий вывод:

uid=1000(test) gid=1000(test) groups=1000(test),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),110(sambashare)

А пользователю 'test' принадлежит следующий файл:

-rw-r--r-- 1 test test 0 May 27 23:34 test_file

Затем мы можем изменить группу test_fileна sambashareбез привилегий суперпользователя, поскольку пользователь 'test' принадлежит к группе 'test' и группе 'sambashare' одновременно, пользователь 'test' уже имеет достаточно прав для изменения группы файла.

pallxk
источник