最近运维思考到生产服务器安全性,要将所有用户权限都发出去,然而开发这边心愿可能领有只读权限的用户,这样遇到一些问题还能够本人登录下来看一下,缩小不必要的沟通老本。运维那边始终说创立一个只读权限的用户很麻烦,要目录一一改什么的,总之不太违心做,而后我尝试了一下如何在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脚本目录,这样用户能够应用哪些命令就往里面加哪些,能够本人管制。如下图圈进去的中央,把原来的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下有三种权限,r(读)、w(写)、x(执行),在第一步咱们创立一个新用户的时候,新用户自身对于现有目录就没有批改的权限,只是领有执行和读的权限,第二、三步的目标就是为了尽量限度执行的权限,但实际上咱们会发现并没有限制住,只不过是对于linux新人,他们不晓得linux命令的真正源端在哪,须要他人给一步一步加可执行命令,实际上咱们应用新用户间接cd 到/bin目录下也是能够执行所有命令的,只是麻烦一些而已。