用户管理
users # 显示所有的登录用户
groups # 列出当前用户和他所属的组
who -q # 显示所有的登录用户
groupadd # 添加组
useradd user # 建立用户
passwd 用户 # 修改密码
userdel -r # 删除帐号及家目录
chown -R user:group # 修改目录拥有者(R递归)
chown y\.li:mysql # 修改所有者用户中包含点"."
umask # 设置用户文件和目录的文件创建缺省屏蔽值
chgrp # 修改用户组
finger # 查找用户显示信息
echo "xuesong" | passwd user --stdin # 非交互修改密码
useradd -g www -M -s /sbin/nologin www # 指定组并不允许登录的用户,nologin允许使用服务
useradd -g www -M -s /bin/false www # 指定组并不允许登录的用户,false最为严格
usermod -l 新用户名 老用户名 # 修改用户名
usermod -g user group # 修改用户所属组
usermod -d 目录 -m 用户 # 修改用户家目录
usermod -G group user # 将用户添加到附加组
gpasswd -d user group # 从组中删除用户
su - user -c " #命令1; " # 切换用户执行
一些常用的脚本
#!/bin/bash
#
read -p "Enter a user name: " userName
while ! id $userName &> /dev/null; do
read -p "Enter a user name again: " userName
done
who | grep "^$userName" &> /dev/null
retVal=$?
while [ $retVal -ne 0 ]; do
sleep 5
who | grep "^$userName" &> /dev/null
retVal=$?
done
echo "$userName is on."
cat userlist.log
username password
test 123123
aaa 123123
########批量添加用户
for name in $(cat userlist.log | awk -F ' ' '{print $1}')
do
if [ -n $name ]
then
useradd -m $name
echo $(cat userlist.log |grep $name | awk -F ' ' '{print $2}') | passwd --stdin $name
else
echo "user is null"
fi
done
########批量删除用户
for name in $(cat userlist.log | awk -F ' ' '{print $1}')
do
if [ -n $name ]
then
userdel $name
else
echo "user is null"
fi
done
UserName="user4"
useradd $UserName
echo $UserName | passwd --stdin $UserName > /dev/null
echo "Add $UserName successfully."
useradd user2
echo user2 | passwd --stdin user2 > /dev/null
echo "Add user2 successfully."
useradd user3
echo user3 | passwd --stdin user3 > /dev/null
#
UserName=`dialog --stdout --backtitle "Add a user." --title "UserName" --inputbox "Please input a username: " 10 25`
RETVAL=$?
clear
if [ $RETVAL -eq 0 -a -n "$UserName" ] ; then
if ! id $UserName &> /dev/null; then
useradd $UserName
Pass=`dialog --colors --ok-label "Submit" --no-shadow --nocancel --stdout --backtitle "Password for $UserName" --title "Password" --insecure --passwordbox "Please enter the password for \Z1$UserName\Zn: " 10 30`
echo $Pass | passwd --stdin $UserName &> /dev/null
dialog --clear --backtitle "Add a user." --title "Add a user." --msgbox "Add user $UserName finished." 10 30
else
echo "$UserName is already there."
fi
fi
# 批量添加用户
for I in {1..10}; do
useradd user$I;
echo user$I | passwd --stdin user$I
done
while read line; do
[[ `echo $line | cut -d: -f7` == "/bin/bash" ]] && echo $line | cut -d: -f1
done < /etc/passwd
恢复密码
即进入单用户模式: 在linux出现grub后,在安装的系统上面按"e",然后出现grub的配置文件,按键盘移动光标到第二行"Ker……",再按"e",然后在这一行的结尾加上:空格 single或者空格1回车,然后按"b"重启,就进入了"单用户模式"
特殊权限
s或 S (SUID):对应数值4
s或 S (SGID):对应数值2
t或 T :对应数值1
大S:代表拥有root权限,但是没有执行权限
小s:拥有特权且拥有执行权限,这个文件可以访问系统任何root用户可以访问的资源
T或T(Sticky):/tmp和 /var/tmp目录供所有用户暂时存取文件,亦即每位用户皆拥有完整的权限进入该目录,去浏览、删除和移动文件