1,wc -l 实际使用案例
生产场景中经常会通过wc -l 计算服务进程个数等,然后通过脚本判断进程个数来检测服务是否正常。如进程数大于一个,说明进程还存在,服务一般就是正常的。
例如计算syslog进程:ps -ef|grep syslog|grep -v grep|wc -l
( 查看文件属于哪个用户和组的命令:ll -i )
2,useradd / adduser :增加用户 ( useradd -s /sbin/nologin -g 801 -M -u 808 old )
-e:帐号终止日期,格式:MM-DD-YY
-c:添加注释
-g:指定用户属于哪个组
-G:为用户指定多个组
-m:创建家目录
-d:指定家目录
-M:不创建家目录
-s:指定用户登录用的shell
-u:设置用户的UID
3,useradd -D:改/etc/default/useradd 配置
-s:修改用户登录用的shell
。。。。。。
userdel :删除用户
passwd : 修改用户密码
chage -l 用户名:查看/修改密码有效期
usermod : 修改用户的命令,可以通过usermod来修改登录名、用户的家目录等
id :查看用户的UID , GID及所归属的用户组
su :用户切换工具
sudo :
visudo :配置sudo权限的编辑命令
finger :查看用户信息工具
groupadd :添加用户组
groups:显示用户所属的用户组
newgrp:更改用户所属的有效用户组
3,/ect/skel目录
每次新增加一个用户,就会把skel目录里面的文件拷贝一份到用户的家目录
4, /etc/login.defs : 增加用户时的一些默认配置
5,/etc/default/useradd :增加用户时的一些初始化配置
6, passwd:修改密码
1)不用交互(输入密码,再输入密码等)的修改用户密码:echo "123456"|passwd --stdin 用户名 , 将来批量修改用户密码时很方便
2)-l 用户名 :锁定用户不能修改密码
3)-u 用户名:解锁用户
7,实战:批量添加用户和设置密码
#!/bin/sh
#author: oldboy
#qq:31333741
userchars="old"
for num in `seq 3`
do
useradd $userchars$num
passwd=`date|md5sum|cut -c3-20`
echo "$passwd"|passwd --stdin $userchars$num
echo -e "user:$userchars$num\tpasswd:$passwd" >> /tmp/user.log
done
8,userdel:实际生产环境中,根据经验,一般不执行userdel来删除用户,而是通过编辑/etc/passwd 中该用户那行信息前添加#注释
9,su命令实战
##分用户方案启动服务命令
[root@moban ~] # su - tddoc -c '/bin/sh /home/tddoc/bin/deploy.sh' :root权限登录情况下,临时使用tddoc用户权限去执行脚本 '/bin/sh /home/tddoc/bin/deploy.sh',执行完成后回到root权限下;
备注:这里是在系统开机时,通过su - 用户 - c “命令”,执行的启动服务的命令,其中'/bin/sh /home/tddoc/bin/deploy.sh'就是仅能在tddoc用户下启动命令脚本。通过普通用户跑服务是个很好的提升系统安全的好办法,在生产环境中,大多数的服务都可以通过普通用户来启动,而不用root。这样做,使得系统安全又提高了一个等级;