用户相关命令
查看当前用户
who am i
添加用户:
$ adduser 用户名
$ adduser user1
#查看用户信息
$ cat /etc/passwd
#查看组信息
$ cat /etc/group
添加组
$ addgroup 组名
$ addgroup group1
#查看组信息
$ cat /etc/group
新建用户指定组
$ adduser --gid 1001 user2
#查看用户信息
$ cat /etc/passwd
#查看组信息
$ cat /etc/group
更改用户到某个组
#usermod 修改用户信息
$ usermod -g 1002 user1
$ usermod --gid 1002 user1
#创建了user3用户,属于user3组。
$ adduser user3
#修改user3用户属于user1组(1000)
$ usermod --gid 1000 user3
删除空余的组
$ groupdel user1
$ groupdel user2
#在/etc/group查看
$ cat /etc/group
#删除组,如果某个账号使用该群组,则不能删除。
更改密码
#root用户更改其他用户的密码
$ passwd user1
#更改自己的密码
$ passwd
#root更改密码没有规则限制,并且不用输入旧密码。
#普通用户修改自己的密码,先输入旧密码,再输入新密码,在确认密码,新密码有规则限制。
切换用户
Linux su(英文全拼:switch user)命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。
- 切换到超级管理员身份
$ su
- 切换到用户
$ su 用户名
从root切换到其他用户不用输入密码,从其他用户切换到root用户或其他用户需要输入密码;只切换用户,不切换shell环境。读取的变量配置方式为 non-login shell 的方式,这种方式很多原本的变量不会被改变, 尤其PATH 这个变量。
login shell:取得 bash 时需要完整的登陆流程的,就称为 login shell。举例来说,我们登陆 tty1 ~ tty6 时,需要输入用户的账号与密码,此时取得的 bash 就称为“ login shell ”;
non-login shell:取得 bash 接口的方法不需要重复登陆的举动,比如我们登陆 Linux 后, 启动终端Terminal,此时那个终端接口并没有需要再次的输入账号与密码,那个 bash 的环境就称为 non-login shell了。又或者你在原本的 bash 环境下再次使用 bash 这个命令,建立了一个bash子进程,同样的也没有输入账号密码, 那第二个 bash (子程序) 也是 non-login shell 。
$ su - 用户名
切换用户,切换shell环境。完整的切换到新使用者的环境,连同 PATH/USER/MAIL 等变量都转成新用户的环境,彻底切换,切换家目录,切换环境变量,直接切换到用户的家目录,每个用户都有一个家目录,有用户变量可以通过
$ echo $PATH
显示当前PATH环境变量,该变量的值由一系列以冒号分隔的目录名组成。执行程序时,shell自动跟据PATH变量的值去搜索该程序。
- 身份切换,执行命令时临时提升权限
$ sudo 其他命令
$ sudo chmod 777 hello.html
使用 root 的身份来运行命令
并非所有人都能够运行 sudo , 而是仅有规范到 /etc/sudoers 内的用户才能够运行 sudo 这个命令。
/etc/sudoers文件默认是只读的,对root来说也是,因此需先添加sudoers文件的写权限,命令是:
即执行操作:chmod u+w /etc/sudoers
其配置文件位于/etc/sudoers中。在/etc/sudoers文件中,添加
用户名 ALL=(ALL)ALL
注意:
如果出现sudo: unable to resolve host iZuf69b3ukcunchz57pmf8Z错误,需要修改host配置
使用管理员身份编辑
$ vi /etc/host
将对应用户的host那么添加到localhost后即可
127.0.0.1 localhost iZuf69b3ukcunchz57pmf8Z
删除用户
$ userdel -r 用户名
-r删除所有的信息,删除用户的相关数据,而用户的数据有:
用户账号/口令相关参数:/etc/passwd, /etc/shadow
使用者群组相关参数:/etc/group, /etc/gshadow
用户个人文件数据: /home/username, /var/spool/mail/username.
用户相关信息
$ id
id 这个命令则可以查询某人或自己的相关 UID/GID 等等的信息