目录
《小菜狗 Linux 操作系统快速入门笔记》目录:
《小菜狗 Linux 操作系统快速入门笔记》(01.0)文章导航目录【实时更新】
Linux
是一个多用户的操作系统。在 Linux
中,理论上来说,我们可以创建无数个用户,但是这些用户是被划分到不同的群组里面的,有一个用户,名叫 root
,是一个很特殊的用户,它是超级用户,拥有最高权限。但是在大多数版本的 Unix/Linux 中,都不推荐直接使用 root 账号登录系统。
自己创建的用户是有限权限的用户,这样大大提高了
Linux
系统的安全性,有效防止误操作或是病毒攻击
,但是我们执行的某些命令需要更高权限时可以使用sudo
命令。
1、切换用户命令【su】
su 命令全称为“swith user”,用于切换当前用户身份到指定用户或者以指定用户的身份执行命令或程序。
- 普通用户切换到 root 用户,可以使用 su – 或su root,但是必须输入 root 密码才能完成切换。
- root 用户切换到普通用户,可以使用 su username,不需要输入任何密码即可完成切换。
- 并且切换用户,需要 root 用户权限。
语法格式::
su [选项] [用户名]
常用参数:
-c 或 --command | 执行完指定的指令后,即恢复原来的身份 |
---|---|
-f 或 --fast | 适用于 csh 与 tsch,使 shell 不用去读取启动文件 |
-l 或 --login | 改变身份时,也同时变更工作目录,以及 HOME,SHELL,USER,logname。此外,也会变更PATH变量 |
-m, -p 或 --preserve-environment | 变更身份时,不要变更环境变量 |
等等 | 详情请参见:https://www.linuxcool.com/su |
使用举例:
su 命令后面可以加“-”会将当前的工作目录自动转换到切换后的用户主目录。
命令 | 含义 |
---|---|
su | 切换到 root 用户 |
su root | 切换到 root 用户 |
su - | 切换到 root 用户,同时切换目录到 /root |
su - root | 切换到 root 用户,同时切换目录到 /root |
su 普通用户 | 切换到普通用户 |
su - 普通用户 | 切换到普通用户,同时切换普通用户所在的目录 |
举例说明:
sudo su --> 切换为root用户(exit 命令或 CTRL + D 快捷键都可以使普通用户切换为 root 用户)
su peng --> 切换为普通用户
su - --> 切换为root用户
- 切换到管理员 root
su
或者
sudo su
- 切换用户
su 用户名
注意:对于 ubuntu 平台,只能通过 su 或者 sudo su 进入 root 账号。
2、以 root 身份执行命令【sudo】
sudo 命令可以临时获取 root 权限,系统管理员允许普通用户执行 root 命令才能执行的操作。
扩展命令:
sudo -l :显示出自己<执行 sudo 的使用者>的权限
sudo !! :以 root 权限执行上一条的命令
注意:
sudo 和 su 命令输入回车完之后还需要输入用户密码的!如果你输入过一次,他将会有几分钟的记忆。
用户管理包括用户与用户组的管理!
3、用户管理命令
有很多命令需要管理员权限才能使用,可以输入命令前加(sudo),也可以直接切换到管理员账号(su)再执行。
3.1、添加用户账号命令【useradd】
useradd 命令的使用格式如下:
useradd [参数] 新建用户账号
参数 | 含义 |
---|---|
-d | 指定用户登录系统时的主目录 |
-m | 自动建立目录,未指定 -d 参数时会在 /home/{当前用户} 目录下建立主目录 |
-g | 指定组名称 |
相关说明: |
- Linux 每个用户都要有一个主目录,主目录就是第一次登陆系统,用户的默认当前目录为(/home/用户);
- 每一个用户必须有一个主目录,所以用 useradd 创建用户的时候,一定给用户指定一个主目录;
- 如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。
命令 | 含义 |
---|---|
useradd -d /home/xiaocaigou xiaocaigou -m | 创建 xiaocaigou 用户,如果 /home/xiaocaigou 目录不存在,就自动创建这个目录,同时用户属于 xiaocaigou 组 |
useradd -d /home/xiaocaigou xiaocaigou -g test -m | 创建一个用户名字叫 xiaocaigou,主目录在 /home/xiaocaigou,如果主目录不存在,就自动创建主目录,同时用户属于 test 组 |
cat /etc/passwd | 查看系统当前用户名 |
注意:若创建用户时未指定家目录,后期可通过 usermod -d /home/xiaocaigou xiaocaigou 指定。
在 Unix/Linux 中添加用户账号可以使用 adduser 或 useradd 命令,因为 adduser 命令是指向 useradd 命令的一个链接,因此,这两个命令的使用格式完全一样。
3.2、修改密码命令【passwd】
超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。
命令的格式为:
passwd 选项 用户名
可使用的选项:
- -l 锁定口令,即禁用账号;
- -u 口令解锁;
- -d 使账号无口令;
- -f 强迫用户下次登录时修改口令。
假设当前用户是 xiaocaigou,则下面的命令修改该用户自己的口令:
$ passwd
Old password:******
New password:*********
Re-enter new password:*********
如果是超级用户,可以用下列形式指定任何用户的口令:
# passwd xiaocaigou
New password:*********
Re-enter new password:*********
- 普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;
- 而超级用户为用户指定口令时,就不需要知道原口令。
为用户指定空口令时,执行下列形式的命令:
passwd -d xiaocaigou
此命令将用户 xiaocaigou 的囗令删除,这样用户 xiaocaigou 下一次登录时,该用户登录就不需要密码了。
3.3、修改用户命令【usermod】
【常用参数】
常用的选项包括 -l,-c,-d,-m,-g,-G,-s,-u 以及 -o 等。
-d
修改家目录位置。
例如:修改 xiaocaigou 用户的家目录位置:
//usermod -d 家目录用户名
usermod -d /home/xiaocaigou xiaocaigou
-g
修改用户所在的群组
例如:修改test
用户的群组为xiaocaigou
:
//usermod -g 用户组 用户名
usermod -g test xiaocaigou
-l
对用户重命名。需要注意的是/home
中的用户家目录的名字不会改变,需要手动修改。
例如:
选项-l 新用户名
指定一个新的账号,可修改用户名:
xiaocaigou@ubuntu:~/txt$ tail /etc/passwd -n 1
aaa:x:1001:1001::/home/aaa:
xiaocaigou@ubuntu:~/txt$ sudo usermod -l bbb -d /home/bbb aaa
xiaocaigou@ubuntu:~/txt$ tail /etc/passwd -n 1
bbb:x:1001:1001::/home/bbb:
-G
一次性让用户添加多个群组,例如usermod -G friends,foo
。
-a
-G
会让你离开原先的群组,如果你不想这样做的话,就得再添加-a
参数,意味着append
追加的意思。
3.4、删除用户命令【userdel】
删除用户,需要 root 用户权限。
命令 | 含义 |
---|---|
userdel xiaocaigou(用户名) | 删除 xiaocaigou 用户,但不会自动删除用户的主目录 |
userdel -r xiaocaigou(用户名) | 删除用户,同时删除用户的主目录 |
3.5、常用方式
useradd xiaocaigou --> 添加一个 xiaocaigou 用户,添加完之后在 /home 路径下可以查看
passwd xiaocaigou --> 修改 xiaocaigou 用户的密码
userdel xiaocaigou --> 删除 xiaocaigou 用户
3.6、查找用户命令【id】
查看用户ID(用户名)及其所属组ID(组名)
$ id
uid=1000(xiaocaigou) gid=1000(xiaocaigou) groups=1000(xiaocaigou),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lxd)
3.7、查看登录用户【who】
who 命令用于查看当前所有登录系统的用户信息。
常用选项:
选项 | 含义 |
---|---|
-m 或 am i | 只显示运行 who 命令的用户名、登录终端和登录时间 |
-q 或 --count | 只显示用户的登录账号和登录用户的数量 |
-u | 在登录时间后显示该用户最后一次操作到当前的时间间隔 |
–heading | 显示列标题 |
-a | 显示全部 who 命令的用户名、登录终端和登录时间 |
3.8、查看当前用户命令【whoami】
查看当前系统当前账号的用户名。
还可通过 cat /etc/passwd 查看系统用户信息。
3.9、退出登录账户命令【exit】
- 如果是图形界面,退出当前终端;
- 如果是使用 ssh 远程登录,退出登陆账户;
- 如果是切换后的登陆用户,退出则返回上一个登陆账号。
4、用户组管理命令
Linux 中每个用户都属于一个特定的群组,如果你不设置用户的群组,默认会创建一个和它的用户名一样的群组,并且把用户划归到这个群组。
4.1、查看用户所在群组命令【groups】
也可以通过 cat /etc/group 节点查看用户组
groups xiaocaigou --> 查看 xiaocaigou 用户所在的群组
4.2、创建群组命令【groupadd】
用法和 useradd 类似。
groupadd xiaocaigou
4.3、删除群组命令【groupdel】
groupdel xiaocaigou --> 删除 xiaocaigou 群组
4.4、用户组管理命令【groupmod】
修改用户组的属性使用 groupmod 命令。
其语法如下:
groupmod 选项 用户组
常用的选项有:
- -g GID 为用户组指定新的组标识号;
- -o 与 -g 选项同时使用,用户组的新GID可以与系统已有用户组的GID相同;
- -n 新用户组 将用户组的名字改为新名字。
举例:
- 将组 group2 的组标识号修改为 102:
groupmod -g 102 group2
- 将组 group2 的标识号改为 10000,组名修改为 group3:
groupmod -g 10000 -n group3 group2
用户与用户组:
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。
用户可以在登录后,使用命令 newgrp 切换到其他用户组,这个命令的参数就是目的用户组。
例如:
newgrp root
这条命令将当前用户切换到 root 用户组,前提条件是 root 用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。
《小菜狗 Linux 操作系统快速入门笔记》目录:
《小菜狗 Linux 操作系统快速入门笔记》(01.0)文章导航目录【实时更新】
每日一更!
公众号、优快云等博客:小菜狗编程笔记
谢谢点赞关注哈!目前在飞书持续优化更新~
日更较慢有需要完整笔记请私我,C/C++/数据结构-算法/单片机51-STM32-GD32-ESP32/嵌入式/Linux操作系统/uboot/Linux内核-驱动-应用/硬件入门-PCB-layout/Python/后期小程序和机器学习!