Как упоминалось и не раз, например, в → этой статье про права на файл, что в linux всё является файлом, а у файла есть владелец и группа. При работе с файлами и папками может потребоваться сменить владельца и/или группу. Например, при смене пользователя или его домашнего каталога. Или для того, чтобы заблокировать доступ пользователю к папке и файлам, лежащим в ней. Или наоборот, когда нужно дать права пользователю или группе пользователей в определённое место на диске.
Помощь по команде chown
в linux
Для того, чтобы сменить пользователя и/или группу у файла и/или папки в linux применяется команда chown
. Как обычно, первым делом заглянем в подсказку операционной системы по этой команде:
root@server:~# chown --help
Usage: chown [OPTION]... [OWNER][:[GROUP]] FILE...
or: chown [OPTION]... --reference=RFILE FILE...
Change the owner and/or group of each FILE to OWNER and/or GROUP.
With --reference, change the owner and group of each FILE to those of RFILE.
-c, --changes like verbose but report only when a change is made
-f, --silent, --quiet suppress most error messages
-v, --verbose output a diagnostic for every file processed
--dereference affect the referent of each symbolic link (this is
the default), rather than the symbolic link itself
-h, --no-dereference affect symbolic links instead of any referenced file
(useful only on systems that can change the
ownership of a symlink)
--from=CURRENT_OWNER:CURRENT_GROUP
change the owner and/or group of each file only if
its current owner and/or group match those specified
here. Either may be omitted, in which case a match
is not required for the omitted attribute
--no-preserve-root do not treat '/' specially (the default)
--preserve-root fail to operate recursively on '/'
--reference=RFILE use RFILE's owner and group rather than
specifying OWNER:GROUP values
-R, --recursive operate on files and directories recursively
The following options modify how a hierarchy is traversed when the -R
option is also specified. If more than one is specified, only the final
one takes effect.
-H if a command line argument is a symbolic link
to a directory, traverse it
-L traverse every symbolic link to a directory
encountered
-P do not traverse any symbolic links (default)
--help display this help and exit
--version output version information and exit
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.
Examples:
chown root /u Change the owner of /u to "root".
chown root:staff /u Likewise, but also change its group to "staff".
chown -hR root /u Change the owner of /u and subfiles to "root".
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Full documentation at: <http://www.gnu.org/software/coreutils/chown>
or available locally via: info '(coreutils) chown invocation'
Как быстро поменять пользователя файла и/или папки в linux
Чтобы сократить время на ознакомление с той командой, сразу дам готовый рецепт того, как быстро поменять пользователя файла и/или папки в linux. Формат этой команды такой:
chown user:group /patch/filename
chown -R user:group /patch/foldername
В первой строчке произойдёт смена пользователя на user
, группы на group
у файла /patch/filename
.
Во второй строчке в примере выше использована дополнительная опция -R
, которая означает рекурсивную обработку. То есть у папки /patch/foldername
произойдёт смена владельца и группы, но этим дело не закончится, все папки и файлы, лежащие в этой директории также будут подвергнуты процессу смены владельца и группы. Рекурсия бывает очень удобна при глобальных изменениях в группой политики в системе.
Остальные опции команды chown не так часто востребованы и используются, поэтому пока не буду с ними разбираться.
Пример использования в видео-инструкции:
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)