使用ls -l命令可查看文件/目录的详细权限信息(如-rw-r--r--),其中:
-为普通文件,d为目录);r、写w、执行x);-rwxr-xr--表示所有者有读、写、执行权限,组用户有读、执行权限,其他用户仅有读权限。chmod是修改权限的核心命令,支持符号模式(精细调整)和数字模式(快速设置):
u(所有者)、g(组)、o(其他)、a(所有)指定对象,用+(添加)、-(移除)、=(设置)调整权限。chmod u+x script.sh(给所有者添加执行权限)、chmod g-w shared.txt(移除组用户的写权限)、chmod o=r config.ini(将其他用户权限设为只读)。4=读、2=写、1=执行),顺序为所有者、组、其他。chmod 755 script.sh(所有者7=4+2+1,全权限;组和其他5=4+1,读、执行权限)、chmod 644 data.csv(所有者6=4+2,读、写;组和其他4,只读)。x权限才能进入,文件需x权限才能执行。sudo chown alice report.pdf(将report.pdf所有者改为alice)、sudo chown -R www-data:www-data /var/www/html(递归修改/var/www/html目录及其子文件的所有者为www-data,组为www-data)。sudo chgrp developers project/(将project目录所属组改为developers)。/tmp)。chmod +t shared_dir/(设置粘滞位,目录权限变为drwxrwxrwt,t表示粘滞位)。chmod g+s project/(设置SetGID,目录权限变为drwxr-sr-x,s表示SetGID)。chmod u+s password_reset(设置SetUID,文件权限变为-rwsr-xr-x,s表示SetUID)。当需要对单个用户或组设置特定权限(超出所有者/组/其他的限制)时,使用ACL:
getfacl filename(显示文件/目录的ACL规则)。setfacl -m u:username:rwx filename(给username用户添加读、写、执行权限)、setfacl -m g:groupname:rw filename(给groupname组添加读、写权限)。setfacl -m u:john:rwx /opt/project/(允许john用户完全访问/opt/project/目录)。使用chmod或chown的-R参数可递归修改目录及其所有子文件/子目录的权限:
示例:chmod -R 755 public_html/(递归设置public_html目录及其子项为rwxr-xr-x)、chown -R alice:developers /home/alice/docs/(递归修改/home/alice/docs/目录及其子项的所有者为alice,组为developers)。
注意:递归修改系统目录(如/etc)或关键文件可能导致系统故障,需谨慎操作。
sudo groupadd team_dev(创建名为team_dev的用户组)。sudo usermod -aG team_dev alice(将alice用户追加到team_dev组,-a表示追加,避免移除原有组)。sudo gpasswd -d alice team_dev(将alice用户从team_dev组移除)。groups alice(查看alice用户所属的所有组,确认组添加成功)。chmod 777:该命令会给所有用户(包括恶意用户)读、写、执行权限,极易导致数据泄露或系统被篡改。应使用最小权限原则(如755用于目录、644用于文件)。sudo而非直接切换root用户,减少误操作风险。cp file.txt file.txt.bak),以便误操作后恢复。