LINUX 脚本编写

来源:互联网 发布:全球鹰k12和知豆哪个好 编辑:程序博客网 时间:2024/06/06 01:23

练习:
1.编写脚本/bin/per.sh,判断当前用户对指定的参数文件,是否不可读并且不可写

#*********************脚本内容如下********************echo 请输入需要查看的文件路径read file_pathA=1B=1cat $file_path &> /dev/nullA=$(echo $?)touch $file_path &> /dev/nullB=$(echo $?)[[ A -eq 1 && B -eq 1  ]] && echo 不可读不可写[[ A -gt B ]] && echo 不可读,可写[[ A -lt B ]] && echo 可读,不可写[[ A -eq 0 && B -eq 0  ]] && echo 可读 可写

2.编写脚本/root/bin/excute.sh ,判断参数文件是否为sh后缀的普通文件,如果是,添加所有人可执行权限,否则提示用户非脚本文件

#*********************脚本内容如下********************echo 请输入文件名read filename[ -f $filename ] && ls -l $filename|grep "\.sh$" && chmod 777 $filename  ||echo 该文件>不是.sh文件

3.编写脚本/root/bin/nologin.sh和login.sh,实现禁止和充许普通用户登录系统

#*********************脚本内容如下********************echo 请输入用户名read usernameecho 选择需要执行的操作:A.禁止登陆 B.允许登陆read set[[ $set != A && $set != B ]] && (echo 您输入的不符合规定 ;exit)echo $set |grep "A" &>/dev/null && usermod -s /sbin/nologin $username|echo "禁止$username 登陆"echo $set |grep "B" &>/dev/null && usermod -s /bin/login $username|echo "允许$username 登陆"

编写一个脚本/root/bin/createuser.sh,脚本的执行语法必须是:createuser.sh -u username -m password,选项与参数间可支持多空格,但不能顺序颠倒。
当未指定正确的选项或参数时,以错误输出方式提示“createuser.sh -u username -m password ”后退出脚本。
合法用户名的正则提取
用户名必须以字母开头,可包括数字和_。否则不合法。以错误输出提示用户”用户名仅包含字母数据和下划线”
当用户名检测合法后,判断用户名是否已存在,若存在,再判断用户是否已设置过密码,若设置过密码,直接退出,
未设置,则将密码设置为所指定的密码后以正确输出方式显示“username 密码已更新后退出”
当用户名不存在,则创建用户,并为该用户设置所指定的密码后以正确输出方式显示“用户username已创建并更新密码”
要求脚本执行过程中不能有非要求的其他输出结果出现。脚本在非正确方式退出时应反回给?参数非0值。

#*********************脚本内容如下********************#!/bin/bashif [ $# -ne 4 ];thenecho "createuser.sh -u username -m password"exitelif [ $1 != "-u" ];thenecho "createuser.sh -u username -m password"exitelif [ $3 != "-m" ];thenecho "createuser.sh -u username -m password"exitfiUser_2=$(echo $2 |grep "^[[:alpha:]][_[:alnum:]]*" -o)[[ $User_2 == $2  ]]&&echo "用户名合法"||(echo "用户名不合法";exit)id $2 &>/dev/null &&echo "此 id 已存在哦" &&(cat /etc/shadow |grep "$2.\!\!"&>/dev/null&& echo $4|passwd --stdin $2 &&echo "用户密>码更新成功")||(useradd $2 && echo "$4"|passwd --stdin $2 && echo $2 用户创建成功 &>/dev/null)||echo 有密码 
原创粉丝点击