Welcome to the K-free blog|

k-free

园龄:5年8个月粉丝:5关注:7

创建readonly只读用户脚本

身为一名运维工作人员,保证服务器的安全是必要项,当开发人员或测试人员需登录到服务器查看日志等操作时,可只给定特定的权限防止误操作的惨况产生。
以下脚本内容均为我本人环境,如有更改可自行修改。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
~]# vim create_readonly.sh
#!/bin/bash
# 打印脚本使用方法
echo -e "method of application\ncreate_readonly.sh username."
# 将用户输入的第一个参数赋给username这个变量
username=$1
# 将用户家目录赋予home这个变量
home="/home/${username}"
# 判断用户是否存在,如果存在,则退出脚本
id $username &> /dev/null
if [ $? == 0 ];then
   echo User already exists
   exit 2
fi
# 判断用户是否在脚本名后跟了用户名
if [ "x"$username == x"" ]
then
   echo -e "Please enter the user name you want to create.\nUsage:'create_readonly.sh username.'"
   exit 2
else
# 创建用户并指定shell环境,成功提示"创建成功"反之提示"创建失败"
   useradd -s /bin/bash $username && echo "The ${username} creating a successful." || "Create a failure."
# 免交互创建用户密码
   echo Abcd1234 | passwd --stdin $username &> /dev/null
# 创建readonly用户可用命令存放目录,给.bin目录赋权,调整.bash_profile文件属主为root,将.bash_profile文件给予700权限且取消编辑功能
   mkdir $home/.bin && chmod 755 $home/.bin && chown root. $home/.bash_profile && chmod 755 $home/.bash_profile && chattr -i $home/.bash_profile
# 将原本.bash_profile中的PATH变量注释,在注释PATH下一行增加"PATH=$HOME/.bin"
   sed -i 's/^PATH/#PATH/' ${home}/.bash_profile
   sed -i '/^#PATH/a\PATH=$HOME/.bin' ${home}/.bash_profile
# 后台切换至readonly用户且执行source命令使.bash_profile生效
   su - $username -c "source '$home'/.bash_profile"
# 将允许使用的命令链接至用户家目录中的存放命令位置
   ln -s /usr/bin/tail $home/.bin/tail
   ln -s /usr/bin/cat $home/.bin/cat
   ln -s /usr/bin/top $home/.bin/top
# 修改sshd_config允许readonly用户直接登录至服务器并重启
   sed -i 's/^AllowUsers*/AllowUsers '${username}'/' /etc/ssh/sshd_config
   systemctl restart sshd
# 判断chmod_log.sh文件是否存在
   if [ ! -f "/root/crontab/chmod_log.sh" ]
   then
''' (注释文档)
    如果不存在则创建存放目录及将以下内容重定向至/root/crontab/chmod_log.sh,并赋予执行权限,随及添加计划任务
    #!/bin/bash(内容根据实际情况自行更改)
    chmod -R 755 /mnt/logs/iottest/*/iot*
    chmod -R 644 /mnt/logs/iottest/*/*.log
    chmod -R 644 /mnt/logs/iottest/*/*/*.log*
计划任务:
    每分钟执行一次/root/crontab/chmod_log.sh脚本,保证readonly一直有访问日志的权限
''' (注释文档)
     mkdir /root/crontab
     echo -e '#!/bin/bash\nchmod -R 755 /mnt/logs/iottest/*/iot*\nchmod -R 644 /mnt/logs/iottest/*/*.log\nchmod -R 644 /mnt/logs/iottest/*/*/*.log*' > /root/crontab/chmod_log.sh
     chmod +x /root/crontab/chmod_log.sh
     echo "*/1 * * * * sh /root/crontab/chmod_log.sh  >> /root/crontab/logfile 2>&1" >> /var/spool/cron/root
# 如果文件存在则直接赋予执行权限并添加计划任务
   else
     chmod +x /root/crontab/chmod_log.sh
     echo "*/1 * * * * sh /root/crontab/chmod_log.sh  >> /root/crontab/logfile 2>&1" >> /var/spool/cron/root
   fi
fi

  

本文作者:k-free

本文链接:https://www.cnblogs.com/k-free-bolg/p/11776821.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   k-free  阅读(557)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 新時代 (ウタ from ONE PIECE FILM RED) Ado
新時代 (ウタ from ONE PIECE FILM RED) - Ado
00:00 / 00:00
An audio error has occurred.

作词 : 中田ヤスタカ

作曲 : 中田ヤスタカ

新時代はこの未来だ

世界中全部 変えてしまえば

変えてしまえば

ジャマモノ やなもの なんて消して

ジャマモノ やなもの なんて消して

この世とメタモルフォーゼしようぜ

ミュージック

キミが起こす マジック

目を閉じれば未来が開いて

目を閉じれば未来が開いて

いつまでも終わりが来ないようにって

この歌を歌うよ

Do you wanna play? リアルゲーム ギリギリ

Do you wanna play? リアルゲーム ギリギリ

綱渡りみたいな旋律

認めない戻れない忘れたい

夢の中に居させて I wanna be free

見えるよ新時代が 世界の向こうへ

さあ行くよ NewWorld

新時代はこの未来だ

新時代はこの未来だ

世界中全部 変えてしまえば

変えてしまえば

果てしない音楽がもっと届くように

夢は見ないわ キミが話した

「ボクを信じて」

あれこれいらないものは消して

あれこれいらないものは消して

リアルをカラフルに越えようぜ

ミュージック

今始まる ライジング

目をつぶりみんなで逃げようよ

目をつぶりみんなで逃げようよ

今よりイイモノを見せてあげるよ

この歌を歌えば

Do you wanna play? リアルゲーム ギリギリ

Do you wanna play? リアルゲーム ギリギリ

綱渡りみたいな運命

認めない戻れない忘れたい

夢の中に居させて I wanna be free

見えるよ新時代が 世界の向こうへ

さあ行くよ NewWorld

新時代わ この未来を

新時代わ この未来を

世界中全部 変えてしまえば 変えてしまえば

果てしない音楽がもっと届くように

夢を見せるよ 夢を見せるよ

新時代だ

新時代だ

新時代だ