Linux修改文件所属用户组chgrp命令详解

上周 chgrp命令是Linux里改文件组归属的工具。

用法是 chgrp 组名 文件或目录
比如 chgrp sales /home/data/report.doc
这行命令把report.doc的组改成sales。

主要选项 -R是递归改子目录和文件。
比如 chgrp -R admin /var/log
会把var/log下面所有文件的组都改成admin。

-c是只显示改了啥。
chgrp -c finance /tmp/data
如果data的组已经是finance,就不会显示任何东西。

-h是改链接本身的组。
比如 chgrp -h manager /link/to/report
这会改link的组,不是report的组。

-v是显示每一步操作。
chgrp -v user /home/alice/docs
会列出alice docs下面每个文件被改成user的过程。

chgrp和chown不一样。
chown可以改用户和组。
chgrp只能改组。

比如 chown bob /file 这会改file的用户和组都是bob。

但 chgrp team /file 这只会改file的组是team,用户不变。

用chgrp的好处是更精确。
如果只想改组,用chgrp。
如果用户和组都要改,用chown。

常见问题 1 . 权限不够。
比如你不是root,又没文件所有者权限。
解决方法是用sudo。
sudo chgrp dev /var/www
2 . 组不存在。
比如你输入的组名写错了,或者根本没创建这个组。
解决方法是确认组名对不对。
可以用cat /etc/group查。

3 . 递归改的时候跳过文件。
可能是因为那些文件你也没权限改。
解决方法是先用ls -lR看看目录结构。

4 . 符号链接改了没反应。
默认是改链接指向的文件,不是链接本身。
解决方法是加-h选项。
chgrp -h group /link
高效管理方法 1 . 创建专用组。
比如webdevs、sales。
groupadd webdevs 然后把人加进去。
usermod -aG webdevs alice
2 . 用-R把文件都改成对应组。
chgrp -R webdevs /home/webdevs/project
3 . 用SGID位让新文件自动继承组。
在目录上设置g+s。
chmod g+s /shared 这样在shared里面创建文件,组就是shared。

4 . 用umask控制默认权限。
比如umask 002 ,新文件默认组可写。

5 . 定期清理。
用find找归属不对的文件。
find /var/data ! -group sales -print
算了。

LINUX如何修改文件所有者_Linux更改文件属主与属组命令说明

上周 搞懂chown和chgrp太重要了。

2 02 3 年8 月1 0日 我那个朋友在服务器上卡了很久。

他忘了sudo。
普通用户根本改不了文件属主。
只能改自己文件组的组名。

chown-Ruser1 :group1 /path 这招强。
连子目录都改了。

chgrp-Rgroup2 /home 改属组也用-R。
特别方便。

但要注意。
递归改根目录绝对不行。
chown -R / 会炸系统。
默认就有保护。

他后来改网站目录。
chown -R www-data:www-data /var/www 瞬间搞定。
服务就好了。

现在明白为啥用www-data了。
避免权限问题。
安全第一。
算了。

如何更改linux文件目录拥有者及用户组

结论: 查看用户:whoami,/etc/passwd,groups用户名。
更改拥有者:chown账号文件/目录。
更改用户组:chgrp组名文件/目录。
同时改两者:chown所有者:组名文件/目录。
递归修改:chown/R账号:组名目录。
精细权限管理,提升系统安全。