linux chmod不同用户权限设置

上周,我使用 chmod 命令在公司服务器上配置文件权限。
我记得有朋友告诉我,用典型的方法最方便。
例如,授予所有者读、写和执行权限是 chmod u=rwx example.txt。
我尝试了一下,很简单。

2 02 3 年,我还学会了数字法。
例如,要将完整许可证授予所有者,为该组读取和执行操作,并且没有其他权限,请 chmod 7 4 0 gr。
数字7 4 0表示所有者有读、写和执行权限(7 ),组有读和执行权限(4 ),其他用户没有权限(0)。

朋友还提醒我,执行目录的权限很重要。
如果没有这个,其他人甚至无法进入该目录。
记得有一次,我把该目录的权限设置为7 5 5 ,但其他人还是进不去,后来发现是执行许可证发放不正确。

我还学习了一种递归修改目录权限的方法,就是chmod -R 7 5 0 /path/to/directory。
这个-R非常有用。
可以同时更改目录、子目录和级别的权限。

这取决于你。
如果您需要调整权限,可以通过以下方式进行。
但请记住安全风险,不要向其他用户授予太多权限。

Linux怎么限制用户sudo执行特定命令

老实说,在 Linux 中控制谁使用 sudo 的关键是使用 /etc/sudoers 文件。
你必须使用 sudovisudo 来打开这个东西。
不要自己乱搞,不然系统可能会直接死机,那就可怕了。

我们先来说说如何定义命令。
例如,如果您不希望人们每次重新启动 nginx 时都输入完整路径,您可以创建一个别名。
像这样:
bash Cmnd_AliasNGINX_RESTART=/usr/bin/systemctlrestartnginx
这叫什么?这称为 NGINX_RESTART。
从现在开始就用这个名字吧。
另外,有些命令特别危险,比如rm,可以直接使用别名:
bash Cmnd_AliasDANGEROUS_CMDS=/usr/bin/rm,/usr/bin/sh,/usr/bin/bash
然后,为用户分配权限。
有两种情况:
1 .白名单,直接做就可以了例如,允许devuser在不输入密码的情况下重新启动nginx:
bash devuserALL=(root)NOPASSWD:NGINX_RESTART
2 . 黑名单,除了危险之外的任何东西。
但说实话,这种方法并不推荐,因为容易泄漏。
喜欢:
bash devuserALL=(ALL)ALL,!DANGEROUS_CMDS
在公司工作时通常会使用组。
例如,devops 组允许该组中的人员重新启动 nginx 和 php-fpm:
bash Cmnd_AliasSERVICE_RESARTTS=/usr/bin/systemctlrestartnginx,/usr/bin/systemctlrestartphp-fpm %devopsALL=(root)NOPASSWD:SERVICE_RESARTS
这比一一添加用户要容易得多。

但是使用 sudo 时有一些缺点需要注意:
1 对于其他人,不要直接运行 vi 等交互式命令。
他们可以使用 :!bash 直接访问 root。
这行得通吗:
Bash sudoedit /etc/hosts
比苏多维安全。

2 环境变量,例如 PATH,如果如果用户更改它们,可能会出现问题。
因此,sudo默认有一个secure_path,一般情况下就足够了。
或者您明确指定命令路径。

3 不要随意使用通配符,因为它们可能会匹配您不应该匹配的内容。
例如,rm 可以杀死 rm。
所以使用完整路径。

4 对于符号链接,用户可以给你 ln -s 来绕过它们。
所以不要让人们只写下符号链接的目录。

5 事情被排除在黑名单之外。
所以白名单还是靠谱的。

如何测试?要查看其他人可以做什么,请使用 sudo -l。
然后实际运行一下,比如sudosystemctlrestartnginx,看看是否有效。
sudorm/etc/hosts 看看是否会被屏蔽。

更改前备份:
Bash sudocp /etc/sudoers/etc/sudoers.bak
如果 sudo 损坏,单用户模式或 LiveUSB 仍然可以修复。

简而言之,白名单比黑名单好。
规则应该按正确的顺序排列,首先是具体的限制。
定期检查/etc/sudoers,不要授予太多权限。
SELinux、AppArmor 等也可以帮助控制这一点。

Linux怎么让不同用户共享同一目录权限