You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$ sudo apt-get install git
jh is not in the sudoers file. This incident will be reported.
首先看看 /etc/suders 文件的内容,里面有如下几行:
# User privilege specification
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
其中,root ALL=(ALL) ALL
root 表示被授权的用户,这里是 root 用户。
第一个ALL表示所有计算机。
第二个ALL表示所有用户。
第三个ALL表示所有命令。
全句的意思是:授权根用户在所有计算机上以所有用户的身份运行所有文件。
%admin ALL=(ALL) ALL 同上面一样,只不过被授权的成了 admin 这个组。
所以在 root ALL=(ALL:ALL) ALL 下面加一行:
jh ALL=(ALL:ALL) ALL
然后 jh 用户登录后,使用 sudo 就可以获得 root 权限了。
当然,在其他两个地方添加类似的内容,也是可以的。
7. 其他
whoami 查看当前用户
id users 查看用户编号及用户组编号
The text was updated successfully, but these errors were encountered:
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个惟一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
关于用户账号的管理,主要有以下几大方面:
1. 用户管理
1.1. 添加用户
参数说明:
/bin/bash
。实例1
此命令创建了一个用户
jh
,其中-d
和-m
选项用来为用户jh
创建一个主目录/home/jh
,用户登录服务器之后,就处于该目录。创建用户时,如果没有给用户指定用户组,则会自动创建一个同名的用户组。
实例2
此命令新建了一个用户
nodejh
,该用户的登录 Shell 是/bin/sh
,它属于group
用户组,同时又属于adm
和root
用户组,其中group
用户组是其主组。这里可能新建组:
groupadd group
及groupadd admin
。增加用户账号就是在
/etc/passwd
文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow
、/etc/group
等。1.2. 删除用户
如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
删除一个已有的用户账号使用userdel命令,其格式如下:
常用的选项是-r,它的作用是把用户的主目录一起删除。
例如:
此命令删除用户
jh
在系统文件中(主要是/etc/passwd
、/etc/shadow
、/etc/group
等)的记录,同时删除用户的主目录。1.3 修改账户
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
修改已有用户的信息使用
usermod
命令,其格式如下:常用的选项包括
-c, -d, -m, -g, -G, -s, -u
等,这些选项的意义与useradd
命令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用选项:
-l 新用户名
。这个选项指定一个新的账号,即将原来的用户名改为新的用户名。例如:
此命令将用户
jh
的登录 Shell 修改为ksh
,主目录改为/home/jh
,用户组改为developer
。1.4 用户口令管理
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
指定和修改用户口令的 Shell 命令是
passwd
。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:可使用的选项:
如果默认用户名,则修改当前用户的口令。
例如,假设当前用户是
jh
,则下面的命令修改该用户自己的口令:如果是超级用户,可以用下列形式指定任何用户的口令:
普通用户修改自己的口令时,`passwd 命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。
为用户指定空口令时,执行下列形式的命令:
此命令将用户
jh
的口令删除,这样用户jh
下一次登录时,系统就不再询问口令。passwd
命令还可以用-l(lock)
选项锁定某一用户,使其不能登录,例如:2. 用户组的管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如 Linux 下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
2.1 添加用户组
添加用户组使用
groupadd
命令,其基本格式如下:可以使用的选项有:
实例1
此命令向系统中增加了一个新组
group1
,新组的组标识号是在当前已有的最大组标识号的基础上加 1。实例2
此命令向系统中增加了一个新组
group2
,同时指定新组的组标识号是 1001。2.2 删除用户组
如果要删除一个已有的用户组,使用
groupdel
命令,其格式如下:例如:
此命令从系统中删除组group1。
2.3 修改用户组
修改用户组的属性使用
groupmod
命令。其语法如下:常用的选项有:
实例1
此命令将组group2的组标识号修改为102。
实例2
此命令将组
group2
的标识号改为10000
,组名修改为group3
。2.4 切换用户组
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。
用户可以在登录后,使用命令
newgrp
切换到其他用户组,这个命令的参数就是目的用户组。例如:
这条命令将当前用户切换到
root
用户组,前提条件是root
用户组确实是该用户的主组或附加组。3. 用户账号相关系统文件
完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。
与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括
/etc/passwd
、/etc/shadow
、/etc/group
等。下面分别介绍这些文件的内容。
3.1
/etc/passwd
Linux系统中的每个用户都在
/etc/passwd
文件中有一个对应的记录行,它记录了这个用户的一些基本属性。这个文件对所有用户都是可读的。它的内容类似下面的例子:
从上面的例子我们可以看到,
/etc/passwd
中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:用户名
是代表用户账号的字符串。通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(:),因为冒号在这里是分隔符。为了兼容起见,登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头。
口令
虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于
/etc/passwd
文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多 Linux 系统(如SVR4)都使用了 shadow 技术,把真正的加密后的用户口令字存放到/etc/shadow
文件中,而在/etc/passwd
文件的口令字段中只存放一个特殊的字符,例如x
或者*
。用户编号
用户编号是一个整数,系统内部用它来标识用户。
般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录 Shell 等。
通常用户标识号的取值范围是
0~65 535
。0
是超级用户root
的标识号,1~99
由系统保留,作为管理账号,普通用户的标识号从100
开始。在Linux系统中,这个界限是500
。用户组编号
用户组编号字段记录的是用户所属的用户组。它对应着
/etc/group
文件中的一条记录。用户注释信息
例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。在不同的 Linux 系统中,这个字段的格式并没有统一。在许多 Linux 系统中,这个字段存放的是一段任意的注释性描述文字,用做
finger
命令的输出。用户主目录
它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。
shell类型
用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即 Shell。
Shell 是用户与 Linux 系统之间的接口。Linux 的 Shell 有许多种,每种都有不同的特点。常用的有:
系统管理员可以根据系统情况和用户习惯为用户指定某个 Shell。如果不指定 Shell,那么系统使用
sh
为默认的登录 Shell,即这个字段的值为/bin/sh
。而/bin/sh
一般链接到/bin/dash
。用户的登录 Shell 也可以指定为某个特定的程序(此程序不是一个命令解释器)。
利用这一特点,我们可以限制用户只能运行指定的应用程序,在该应用程序运行结束后,用户就自动退出了系统。有些Linux 系统要求只有那些在系统中登记了的程序才能出现在这个字段中。
3.2
/etc/shadow
/etc/shadow
中的记录行与/etc/passwd
中的一一对应,它由pwconv
命令根据/etc/passwd
中的数据自动产生。它的文件格式与
/etc/passwd
类似,由若干个字段组成,字段之间用:
隔开。这些字段是:/etc/passwd
文件中的登录名相一致的用户账号{ ./0-9A-Za-z }
中的字符,则对应的用户不能登录。3.3
/etc/group
用户组的所有信息都存放在
/etc/group
文件中。用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段。
每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。
当一个用户同时是多个组中的成员时,在
/etc/passwd
文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。用户要访问属于附加组的文件时,必须首先使用
newgrp
命令使自己成为所要访问的组中的成员。用户组的所有信息都存放在
/etc/group
文件中。此文件的格式也类似于/etc/passwd
文件,由冒号:
隔开若干个字段,这些字段有:/etc/passwd
中的登录名一样,组名不应重复。*
。,
分隔。这个用户组可能是用户的主组,也可能是附加组。4. 伪用户 psuedo users
统中有一类用户称为伪用户(psuedo users)。
这些用户在
/etc/passwd
文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。常见的伪用户如下所示:
除了上面列出的伪用户外,还有许多标准的伪用户,例如:
audit
、cron
、mail
usenet
等,它们也都各自为相关的进程和文件所需要。5. 添加批量用户
添加和删除用户对每位 Linux 系统管理员都是轻而易举的事,比较棘手的是如果要添加几十个、上百个甚至上千个用户时,我们不太可能还使用
useradd
一个一个地添加,必然要找一种简便的创建大量用户的方法。Linux系统提供了创建大量用户的工具,可以让您立即创建大量用户,方法如下:a) 先编辑一个文本用户文件
每一列按照
/etc/passwd
文件的格式书写,要注意每个用户的用户名、UID、宿主目录都不可以相同,其中密码栏可以留做空白或输入x
号。一个范例文件 user.txt 内容如下:b) 导入用户
以
root
身份执行命令/usr/sbin/newusers
,从刚创建的用户文件user.txt中导入数据,创建用户:然后可以执行
cat /etc/passwd
等命令检查/etc/passwd
文件是否已经出现这些用户的数据,并且用户的宿主目录是否已经创建。c) 解码密码
将
/etc/shadow
产生的 shadow 密码解码,然后回写到/etc/passwd
中,并将/etc/shadow
的shadow密码栏删掉。这是为了方便下一步的密码转换工作,即先取消 shadow password 功能。执行命令
/usr/sbin/pwunconv
:d) 编辑密码文件
编辑每个用户的密码对照文件,范例文件 passwd.txt 内容如下:
e) 创建用户密码
创建用户密码,
chpasswd
会将经过/usr/bin/passwd
命令编码过的密码写入/etc/passwd
的密码栏。f) 编码密码
确定密码经编码写入
/etc/passwd
的密码栏后,执行命令/usr/sbin/pwconv
将密码编码为shadow password
,并将结果写入/etc/shadow
。这样就完成了大量用户的创建了,之后就可以到
/home
下检查这些用户宿主目录的权限设置是否都正确,并登录验证用户密码是否正确。6. 赋予用户 root 权限
如果普通用户不在
/etc/sudoers
文件中,则使用sudo
命令的时候就会报错,如:首先看看
/etc/suders
文件的内容,里面有如下几行:其中,
root ALL=(ALL) ALL
root
表示被授权的用户,这里是 root 用户。全句的意思是:授权根用户在所有计算机上以所有用户的身份运行所有文件。
%admin ALL=(ALL) ALL
同上面一样,只不过被授权的成了admin
这个组。所以在
root ALL=(ALL:ALL) ALL
下面加一行:然后
jh
用户登录后,使用sudo
就可以获得 root 权限了。当然,在其他两个地方添加类似的内容,也是可以的。
7. 其他
The text was updated successfully, but these errors were encountered: