1.Linux是多用户的操作系统,正如在Windows系统中可以进行用户账号的切换,Linux同样允许多用户操作。在Linux服务器环境中,通常由多名运维人员共同管理,而这些运维人员各自拥有不同的权限和级别。因此,我们可以根据每个用户的角色、职位和需求,为他们分配相应的权限,以确保服务器的安全性和有效管理。
2.在登陆Ubuntu时,会填写全名、用户名、密码等,所创建的这个用户就是默认用户,其中全名可以类似为一个昵称,用户名为主机名(较正式,不可随意更改)。
3.用户大体上分为三种,分别是:
①普通用户(Ordinary User):这是系统中最常见的用户类型,拥有执行日常任务所需的权限,但通常没有修改系统设置或访问其他用户文件的权限。
②超级用户(Superuser):也被称为root用户,是系统的最高权限用户。超级用户可以执行系统上的所有命令,包括系统配置、文件访问和用户管理等。(用户名就为root)
③系统用户(System User):这些用户通常不用于登录,而是为运行系统服务和应用程序而创建的。
我们在注册Ubuntu时创建的用户是哪一个呢?——旧版本可以先注册root用户后注册其他用户(普通用户),而新版本无法注册root用户,因为其权限很高,日常使用无需过多权限,避免误操作。
4.在Linux系统中,root用户是具有最高权限的超级用户,通常只在需要进行系统级管理操作时使用。什么时候需要使用root用户?
-
系统维护和管理:
- 安装、更新或删除软件包,特别是那些需要写入系统目录或更改系统配置的软件。
- 修改系统文件和目录,比如
/etc
下的配置文件。 - 管理用户账户和用户组,包括添加、删除用户或更改用户权限。
- 执行系统级别的任务,如磁盘分区、格式化或挂载文件系统。
-
故障排除和修复:
- 解决系统启动问题,编辑启动加载器的配置文件,如
grub
。 - 修复文件系统错误或处理磁盘空间不足的情况。
- 清除系统日志或重置系统设置,以恢复系统正常运行。
- 解决系统启动问题,编辑启动加载器的配置文件,如
-
安全相关操作:
- 安装或更新系统安全补丁。
- 配置防火墙规则或SELinux策略。
- 审查系统日志,监控潜在的安全威胁。
-
资源密集型操作:
- 执行需要大量系统资源的操作,如构建大型软件项目或进行系统备份。
通常在这些场景下使用root用户或相应的管理员权限,因为这些操作涉及到系统、服务器的关键部分,足以影响到整个系统的安全性和稳定性。然而,由于root用户的权限极高,因此在非必要的时刻应避免使用root用户,以减少误操作带来的风险。相反,我们通常通过sudo命令让普通用户在需要时临时提升权限,以执行特定的管理任务。
5.用户的添加(需要root权限)
useradd 用户名
由上图我们可知,权限不足,需要提升权限,我们可以通过sudo来暂时提高普通用户的权限。
拓展:sudo是什么?
sudo(superuser do)是在类Unix操作系统中(包括Linux和macOS)常用的一个命令,它允许经过授权的用户以系统管理员(通常是root用户)的权限来运行程序或命令。sudo
提供了一种安全的方式来暂时提升用户的权限,而无需用户实际登录为root账户。
sudo使用时间戳文件来记录用户最近一次成功使用sudo的时间。默认情况下,这个时间戳的有效期大约是5分钟。在这段时间内,用户可以继续使用sudo而不需要重新输入密码。
sudo的基本语法是:
sudo [options] command [arguments]
这里的command
是你想以root或其他用户身份运行的命令,arguments
是传递给命令的参数。
eg:
如果你想以root用户身份运行apt-get
命令来安装软件包,你可以这样做:
sudo apt-get install software-package
这将提示你输入你注册时设置的用户密码(非root的密码)。
sudo的选项
sudo有许多选项可以用来定制其行为,其中一些最常用的是:
-u
或--user
:允许你指定以哪个用户的身份运行命令。-i
或--login
:模拟登录环境,通常用于需要环境变量的脚本。-s
或--shell
:启动一个交互式的shell会话,通常是root的shell。
eg:
以另一个用户身份运行命令ls -l(以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等。):
sudo -u otheruser ls -l
一般的系统上都默认安装了 sudo 实用程序
——————————————————————————————————
接拓展前:
故输入命令并输入密码即可:
sudo useradd user1
可通过cat /etc/passwd命令查看所有用户(最后一行就是新建的用户)
使用sudo passwd user1来设定该用户的密码。(若3~5前验证过密码则不会验证,否则注意输入的是新密码还是原来用户的密码)
PS:如果出现“密码未通过字典检查”,可直接忽略,再次输入一遍即可.
6.添加用户时的选项
-c
,--comment "comment"
: 添加用户信息。-d
,--home-dir directory
: 指定用户的家目录。-m
,--create-home
: 如果未指定家目录,则创建默认的家目录。-s
,--shell shell
: 指定用户的登录shell。-u
,--uid uid
: 指定用户的UID。-g
,--gid gid
: 指定用户的主用户组。-G
,--groups groups
: 将用户添加到额外的用户组。-p
,--password password
: 指定加密的密码。-e
,--expiredate date
: 指定账户的过期日期。-L
,--inactive days
: 指定密码过期后多少天内仍可登录。-f
,--inactive days
: 指定从密码过期开始,多少天后账户失效。-M
,--no-create-home
: 不创建家目录。-N
,--no-log-init
: 不记录到/var/log/lastlog
和/var/log/faillog
。-U
,--no-user-group
: 不创建与用户同名的用户组。
比如,
①创建家目录-m,需要在创建新用户时添加选项。
sudo useradd -m user2
这时进入到/home,并ls就可以看到除了suki以外还有user2。
②指定所在组-g:
输入id回车后可以查看当前用户(suki)的信息,其中gid中1000就是组id,suki就是组的名字,与用户名一样。(也可以查id user1)
sudo useradd -g user2 user3
把user3分到了user2组中,这时再输入id user3,就会发现gid中括号内为user2。
PS:只输入命令passwd就是设置当前用户的密码。(退出是ctrl+D)