Linux—账号管理

用户

Linux用户分为三种

  • 根用户:就是root,拥有最高权限
  • 系统用户:系统运行时必须拥有的用户,并不是真实的使用者,如系统用户apache用来运行httpd
  • 普通用户:实际使用的真实用户

我们平常所说的用户都是指普通用户,Linux中记录用户信息的是/etc/passwd和/etc/shadow两个文件

创建用户

useradd -d /home/john -m -s /bin/bash john

参数解释

  • -d:指定登陆后所在的目录
  • -m:如果/home/john家目录不存在就创建
  • -s:指定shell

修改密码

创建用户后需要设置密码,否则不能登陆

passwd john
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

修改用户

usermod -d /home/test -m john

将用户的家目录改为/home/test

我们可以通过cat /etc/passwd来查看是否修改了家目录

cat /etc/passwd
....
john:x:1001:1001::/home/test:/bin/bash

可以看到用户的家目录已经改为/home/test了

删除用户

userdel john

userdel john只是删除了/etc/passwd以及/etc/shadow中的记录,但是并没有删除家目录以及其他相关文件,要想同时删除对应的家目录及相关文件,可以加上-r

userdel -r john

简便方法

Linux创建用户还有一种简单的方法,可以直接创建家目录,设置密码,指定bash

vagrant@homestead:~$ sudo adduser john
Adding user `john' ...
Adding new group `john' (1001) ...
Adding new user `john' (1001) with group `john' ...
Creating home directory `/home/john' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for john
Enter the new value, or press ENTER for the default
	Full Name []:
	Room Number []:
	Work Phone []:
	Home Phone []:
	Other []:
Is the information correct? [Y/n] y

可以看到输入命令后,系统直接执行了创建用户、用户组、将用户添加到用户组、创建家目录、设置密码等操作,创建后直接就可以登陆了

用户组

创建用户组

Linux中用户组的信息记录在/etc/group中

groupadd test

查看/etc/group文件

cat /etc/group
....
test:x:1001:

可以看到末尾添加了test用户组,group文件中每一行代表一个用户组,格式为3个冒号隔开的4列参数,从前到后一次为用户组名:密码(实际并不使用):用户组id:组成员,因为用户组现在还没成员,所以组成员为空

删除用户组

groupdel test

添加、删除用户到用户组

将用户添加到用户组

vagrant@homestead:~$ sudo gpasswd -a john vagrant
Adding user john to group vagrant

参数解释

  • -a:将用户添加到用户组
  • john:用户名
  • vagrant:用户组名

添加完后可以通过groups查看用户所属用户组

john@homestead:/vagrant$ groups
john vagrant

从用户组中删除用户

vagrant@homestead:~$ sudo gpasswd -d john vagrant
Removing user john from group vagrant

通过groups查看

john@homestead:/vagrant$ groups
john

切换用户

切换用户有两种方式

  • su(switch user)
  • sudo

su

su:切换用户,不加参数时su默认切换到root用户,如果要切换到其他用户,su后加上用户名即可

vagrant@homestead:~$ su
Password:
root@homestead:/home/vagrant# pwd
/home/vagrant
root@homestead:/home/vagrant# su vagrant
vagrant@homestead:~$ pwd
/home/vagrant

su后可加上“-”参数

vagrant@homestead:~$ su -
Password:
root@homestead:~# pwd
/root
root@homestead:~# su - vagrant
vagrant@homestead:~$ pwd
/home/vagrant

通过示例可以看到,加“-”与不加“-”的区别是:加上“-”之后,不但身份切换了,同时用户环境也切换了

sudo

因为su切换root用户时,每次都要输入root密码,而root用户拥有最高的权限,这样大部分人就都知道了root密码,为了解决这个问题,于是就有了sudo,sudo就是用root的身份执行某段命令,且不需要输入密码,但是sudo也不是所有用户都可以使用的,需要授权才可使用,这样就避免了任何用户都可以用sudo来执行命令。

管理sudo使用权限的文件在/etc/sudoers中

john@homestead:/vagrant$ sudo vim /etc/hosts
[sudo] password for john:
john is not in the sudoers file.  This incident will be reported.

刚创建的用户john不可以使用sudo

通过visudo来编辑sudoers文件,也可以用vi来修改,但是visudo会检测配置文件是否有错误,防止改错了过后sudo无法使用

root@homestead:~# visudo
#找到以下代码
root	ALL=(ALL:ALL) ALL
#在后面追加一条
john    ALL=(ALL:ALL) ALL

这样john用户即可使用sudo

猜你喜欢

转载自blog.csdn.net/johnhan9/article/details/88686193