近来运维考虑到生产服务器安全性,要将所有用户权限都收回去,并且开发那边希望才能拥有只读权限的用户,这样遇见一些问题还可以自己登陆起来看一下,降低毋须要的沟通成本。运维那儿仍然说创建一个只读权限的用户很麻烦linux新建只读用户,要目录挨个改哪些的,其实不太乐意做,之后我尝试了一下怎样在linux上创建只读用户,借此来打运维的脸,我这儿基于centos7系统。
创建用户
第一步肯定是要创建一个用户,这步十分简单执行以下命令即可
useradd -s /bin/bash test
这儿还是要说明一下,该命令就是说创建一个用户test,指定登陆后使用的shell,也就是可执行的一些命令。
之后给新建的用户设置一下密码
passwd test
shell环境打算
第二步就是要给新建的用户打算好可执行的shell环境引用,目的就是限制用户可以使用的命令,例如ls、less这种常用的命令原本可以直接使用,通过这一步就可以进行限制。
创建一个shell的引用目录
mkdir /home/test/.bin
更改目录权限
chown root. /home/test/.bash_profile
chmod 755 /home/test/.bash_profile
更改bash配置文件,这一步就是为了让新建用户引用新的shell脚本目录linux新建只读用户linux 命令,这样用户可以使用什么命令就往上面加什么,可以自己控制。如右图圈下来的地方,把原先的PATH路径注释掉,使用新的PATH路径。
使环境变量生效
su - test
source /home/test/.bash_profile
加入可以执行的命令
将容许执行的命令链接到$HOME/.bin目录下,也就是我们上一步建的/home/test/.bin。
ln -s /usr/bin/wc /home/test/.bin/wc
ln -s /usr/bin/tail /home/test/.bin/tail
ln -s /bin/more /home/test/.bin/more
ln -s /bin/cat /home/test/.bin/cat
ln -s /bin/grep /home/test/.bin/grep
ln -s /bin/find /home/test/.bin/find
ln -s /bin/pwd /home/test/.bin/pwd
ln -s /bin/ls /home/test/.bin/ls
ln -s /bin/less /home/test/.bin/less
ln -s /bin/tar /home/test/.bin/tar
这儿加了好多常用的命令只是举例,可以依照自己的需求增减。
总结
通过前面3步就完成了只读用户的创建小型linux系统,但实际上该用户并不是实际意义上的只读。我们晓得linux下有三种权限,r(读)、w(写)、x(执行),在第一步我们创建一个新用户的时侯,新用户本身对于现有目录就没有更改的权限,只是拥有执行和读的权限,第二、三步的目的就是为了尽量限制执行的权限,但实际上我们会发觉并没有限制住,只不过是对于linux新人,她们不晓得linux命令的真正源端在哪,须要他人给一步一步加可执行命令,实际上我们使用新用户直接cd到/bin目录下也是可以执行所有命令的,只是麻烦一些而已。