Linux:用户与用户组管理

  • 添加用户/用户组

场景:john的电脑丢了,想借你的电脑用几天,但是你的电脑里有一些私人文件不想让john看到,于是乎,你决定给john建立一个账号:

sudo useradd -m john ##新添加一个用户; 不带-m的 adduser 不会为用户建立自己的主目录,这样其登录图形界面时会出错
sudo passwd john ##更改john的登录密码

你可以通过给john的账号设置权限,从而防止私人文件外泄。
useradd ,groupadd

sudo useradd -g users mike ##建立命为mike的用户账号,并指定其属于users组;-g:指定用户所属用户组
sudo useradd -s /bin/bash mike ##创建名为mike的用户账号,并指定其登录后使用bash作为shell;-s 用于指定用户登录后所使用的Shell
sudo groupadd newgroup ##创建名为newgroup的组

history:读取用户的历史操作(仅能在bash中使用)
用户的历史操作都被保存在.bash_history文件中

history ##通过该命令,用户可以查看自己曾经的历史操作
history 10 ##仅列出最近10条历史记录

##root用户,可以通过进入某用户主目录,查看.bash_history文件,来查看该用户最近的操作历史
##比如,要查看John的操作历史
cd /home/john/
sudo cat .bash_history ##需要root权限,才能查看该文件

passwd 和 shadow 文件
在Linux中所做的基本配置最终都将反应到配置文件中,用户管理也不例外。
所有用户信息都登记在/etc/passwd文件中,而/etc/shadow文件则保留这用户的登录密码。
出了使用useradd , passwd 来 添加用户,也可以通过直接编写/etc/passwd ,/etc/shadow 来添加用户。
/etc/passwd 可以被任何用户访问,/etc/shadow 仅root用户可以访问。若要修改这2个文件,均需要root权限。

  • 删除用户
sudo userdel mike ##删除mike账号;默认情况下,userdel仅删除用户账户,不删除其主目录,除非使用-r
sudo userdel -r mike ##在删除mike账户的同时,删除其主目录
  • 管理用户账号:usermod
    -d:修改用户主目录
    -e:修改账号的有效期限
    -g:修改用户所属的组
    -l:修改用户账号名称
    -s:修改用户登录后使用的shell
sudo usermod -l mike -d /home/mike -e 12/31/13 john ##将john改名为mike,主目录改为/home/mike,账号有效期至 2013/12/31

和useradd的原理一样,usermod也可通过修改/etc/passwd,/etc/shadow,/etc/group 这3个文件来实现用户属性的设置

  • 查看用户信息:id
id username ##用于查看username的 UID,GID
id ##如果不跟参数,则显示当前登录用户的信息
  • 用户间切换:su
su ##su 不加任何参数时,可以切换到root用户(需要提供root口令)
su john ##su 加参数后,可以切换到john用户(需要提供john口令)
exit ##使用完毕后,可以通过exit回退到之前的用户

在这里插入图片描述

  • 受限的特权:sudo
##sudo 接受命令行做参数,以root身份执行该命令,在执行前需要用户提供自己的口令,口令正确方可执行 命令行
sudo -u peter touch new_file ##-u:指定以用户peter的身份来执行命令行 touch new_file

用户可以通过修改/etc/sudoers 文件,来指定用户可以执行的特权命令,下面是Ubuntu中sudoers文件的默认设置:
在这里插入图片描述
root ALL=(ALL) ALL :这段配置指定root用户可以使用sudo在任何机器上(第1个ALL) 以任何用户身份(第2个ALL) 执行任何命令(第3个ALL);
%admin ALL=(ALL) ALL:%admin 指所有属于admin组的用户,这段配置指定admin用户组用户可以使用sudo在任何机器上(第1个ALL) 以任何用户身份(第2个ALL) 执行任何命令(第3个ALL);
sudoer中的每一行权限说明包含了下面这些内容:
该权限适用的用户;
这一行配置在哪些主机上适用;
该用户可以运行的命令;
该命令应该以哪个用户身份执行。
下面为一段较复杂的配置,这段配置涉及3个用户,并为他们设置了不同的权限:

Host_Alias 和 Cmnd_Alias 分别定义了主机组和命令组,后面可以用STATION替代主机web1,web2,databank;用DUMP替代命令/sbin/dump 和 /sbin/restore,这种设置可以让配置文件更清晰,同时也更容易维护。需要注意,sudoer中的命令应该使用绝对路径来指定,以防一些人用root身份来执行自己的脚本程序。
接下来的3行配置了用户权限:
第1行位lewis用户权限:lewis可以在STATION组的机器上执行任何命令;
第2行为mike用户权限:mike可以在所有的计算机上以任何用户身份运行任何命令;

sudo -u peter touch new_file

第3行为john用户权限:john可以在所有机器上以operator身份执行DUMP命令;

sudo -u operator /sbin/dump backup /dev/sdb1 ##以用户operator的身份执行dump命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sarah ฅʕ•̫͡•ʔฅ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值