最近考虑到生产服务器的安全,应该把所有用户权限都撤掉,但是开发方希望有只读权限的用户,这样如果有的话可以自己登录他们遇到一些问题就看看,减少不必要的沟通成本。运维方一直说创建只读权限的用户很麻烦。需要一个一个的改目录。面子,我这里是基于centos7系统的。创建用户的第一步必须是创建用户。这一步很简单。执行如下命令useradd-s/bin/bashtest这里还是要说明一下,这个命令是创建一个用户test,并指定登录后使用的shell,也就是一些可执行的命令。然后为新创建的用户设置密码passwdtestshell环境准备第二步为新创建的用户准备一个可执行的shell环境参考,目的是限制用户可以使用的命令,比如ls,less这些常用的使用的命令可以直接使用,通过这一步可以限制。创建shell引用目录mkdir/home/test/.bin修改目录权限chownroot。/home/test/.bash_profilechmod755/home/test/.bash_profile修改bash配置文件,这一步是让新用户引用新的shell脚本目录,这样用户就可以添加哪些命令可以使用,以及可以自己控制。在下图圈出的地方,将原来的PATH路径注释掉,使用新的PATH路径。使环境变量生效su-testsource/home/test/.bash_profile添加可执行命令将可执行命令链接到$HOME/.bin目录下,也就是我们上一步建好的/home/test/.bin。ln-s/usr/bin/wc/home/test/.bin/wcln-s/usr/bin/tail/home/test/.bin/tailln-s/bin/more/home/test/.bin/moreln-s/bin/cat/home/test/.bin/catln-s/bin/grep/home/test/.bin/grepln-s/bin/find/home/test/.bin/findln-s/bin/pwd/home/test/.bin/pwdln-s/bin/ls/home/test/.bin/lsln-s/bin/less/home/test/.bin/lessln-s/bin/tar/home/test/.bin/tar这里添加了很多常用的命令只是举例,大家可以根据自己的需要增减。小结通过以上3步,一个只读用户的创建就完成了,但实际上这个用户并不是真正只读的。我们知道linux下有三种权限,r(读),w(写),x(执行)。当我们在第一步创建新用户时,新用户本身没有修改现有目录的权限,只有Execute和read权限,第二步和第三步的目的是尽可能限制执行权限,但实际上我们会发现并没有什么限制,但是对于linux新手来说,他们并不知道linux命令的真正来源在哪里,需要别人一步步添加可执行命令。其实我们可以直接用新用户cd到/bin目录下执行所有命令,只是麻烦了一点。
