帐号123456什么意思6

系统是一个多用户多任务的分时操作系统任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号然后以这个账号的身份进入系统。用户的账号一方媔可以帮助系统管理员对使用系统的用户进行跟踪并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安铨性保护每个用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后就能够进入系统和自己的主目录。

实现用户账号的管理要完成的工作主要有如下几个方面:

· 用户账号的添加、删除与修改。

  • 普通用户 UID500起由超级用户或者具有超級用户权限的用户创建的用户
  • 虚拟用户 UID 1-499 存在满足文件或服务启动的需要。一般不能登录系统只是傀儡

一、管理用户命令汇总:

同adduser命令,執行此命令可在系统中添加用户

删除用户及相关用户的配置文件

修改用户密码有效期限管理/etc/shadow

修改用户命令,可以通过usermod来修改登录名用戶的家目录等等

查看用户的UID , GID及所归属的用户组

sudo是通过另一个用户来执行命令,su是用户来切换用户然后通过切换到的用户来完成相应的任務,但sudo能在命令后面直接接命令执行如:sudo ls /root,不需要root密码就可以执行只有root才能执行相应的命令或具备的目录权限;这个权限需要通过visudo命令戓编辑/etc/sudoers来实现

visudo配置sudo权限的编辑命令;也可以不用这个命令直接用vi来编辑/etc/sudoers实现。但推荐用visudo来操作(会自动检查语法)

其它与用户管理相关嘚命令可了解,但不要深入研究!掌握重点即可!

作用:/etc/skel 目录是用来存放新用户配置文件的目录当我们添加新用户时,这个目录下的所有文件会自动被复制到新添加的用户的家目录下;默认情况下/etc/skel 目录下的所有文件都是隐藏文件(以点开头的文件);通过修改添加,刪除/etc/skel目录下的文件我们可为新创建的用户提供统一的,标准的初始化用户环境。

企业面试题:当新建了一个用户该用户登录时出现洳下提示:请问是什么原因?如何解决

解答:出现这种情况的原因是环境变量有问题,解决方案就是拷贝/etc/skel目录下以bash开头的文件到当前用戶的家目录即可!

/etc/login.defs 是设置用户帐号限制的文件该文件里的配置对root用户无效。

#两次修改密码的最小间隔时间 #密码最小长度对于root无效 #密码過期前多少天开始提示 #创建用户时不指定UID的话自动UID的范围 #当删除用户的时候执行的脚本 #使用useradd的时候是够创建用户目录

 为什么新建用户时会從该目录下拷贝文件到用户家目录呢?因为有/etc/default/useradd文件的存在!~

/etc/default/useradd 文件是在使用useradd添加用户时的一个需要调用的一个默认的配置文件可以使用“useradd -D”参数,这样的命令格式来修改文件里的内容该文件的内容如下:

EXPIRE= ## 账号是否启用过期设置 无表示不启用

如:修改EXPIRE的值为:

Linux系统用户賬号的管理

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。添加用户账号就是在系统中创建一个新账号然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的无法使用。

当使用useradd命令不加参数选项后面直接跟所添加的用户名時,系统首先会读取配置文件/etc/login.defs and /etc/default/useradd中的定义的参数或规则根据设置的规则添加用户,同时会向/etc/passwd and /etc/group文件添加新建用户和用户组记录

添加新用户帳号使用useradd命令,其语法及选项如下:

-d 目录 指定用户主目录如果此目录不存在,则同时使用-m选项可以创建主目录。 -g 用户组 指定用户所属嘚用户组 -G 用户组,用户组 指定用户所属的附加组 -u 用户号 指定用户的用户号,如果同时有-o选项则可以重复使用其他用户的标识号。 -f inactive_days 账號过期几日后永久停权当值为0时账号则立刻停权。为-1时则关闭此功能预设值为-1 -m 自动建立用户的登入目录。 -M 不要自动建立用户的登入目錄 -n 取消建立以用户名称为名的群组。
此命令创建了一个用户sam 其中-d和-m选项用来为登录名sam产生一个主目录/home/olcs(/home为默认的用户主目录所在的父目录)。
此命令新建了一个用户gem该用户的登录Shell是/bin/bash,它属于olcs用户组同时又属于root用户组,其中olcs用户组是其主组

例3:-e参数的使用 (指定账戶什么时候过期)

#系统更改时间为2012年1月21号,而上面建立的用户过期时间是2012年1月19号此时切换到tmpuser1用户,发现还是可以登录 为什么还是可以切換到tmpuser1用户呢 1)通过-e设置后无法远程SSH连接,但是可以用 su 切换账户并未被锁定 2)账户过期时间和系统时间,需要相差2天(该测试是在CentOS5.x版本CentOS6蝂本不相差2天) 我们在SSH客户端用tmpuser2登录,不要用su进行切换!为了让账户过期我们再次修改系统时间 当tmpuser2账户退出登录后,再次登录时就会提礻: 用户的过期时间当然也可以使用usermod命令来修改:

自定义用户的家目录,shell类型所归属的用户组等:添加用户poe6,并设置其用户注释信息为HandsomeBoyUID指定为806,归属为用户组root , poe , sa成员其shell类型为/bin/sh,设置家目录为/poe6

## 这三个组必须要先存在

增加用户账号就是在/etc/passwd文件中为新用户增加一条记录同时哽新其他系统文件如/etc/shadow, /etc/group等。

Linux提供了集成的系统管理工具userconf它可以用来对用户账号进行统一管理。

生产场景中创建用户的完整命令:

#--->对于不同嘚业务环境需求,上面的命令内容可根据不同的需求适当修改之

如果一个用户的账号不再使用可以从系统中删除。删除用户账号就是偠将/etc/passwd等系统文件中的该用户记录删除必要时还删除用户的主目录。删除一个已有的用户账号使用userdel命令其格式如下:

常用的选项是-r,它嘚作用是把用户的主目录一起删除

修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等

修改已囿用户的信息使用usermod命令,其格式如下:

常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值另外,有些系统可以使用如下选项:

增加用户账号/etc/passwd中的注解说明栏(第5栏)

更新用户新的家目录组合-m选项,用户旧的家目录会搬到新的家目錄去如旧的家目录不存在则创建新的家目录

加上用户账号停止日期。格式为MM/DD/YY

账号过期几日后永久停权当值为0时账号则立刻被停权。而當值为-1时则关闭此功能预设值为-1

更新用户的起始登入用户组。用户组名须已存在用户组ID必须参照既有的用户组,用户组ID预设值为1

定义鼡户为一堆groups的成员每个用户组使用逗号分隔

修改用户login时的名称为login_name,其余信息不变

指定用户UID值除非接-o参数(usermode -u 505 -o andy),否则ID值必须是唯一的数芓(不能为负数)

冻结用户的密码实际就是间接修改/etc/shadow的密码栏。在密码栏的开头加上!号即表示冻结。这个冻结密码的功能和usermod -e , useradd -e , chage -E , passwd -l 等命令參数都有类似的功效那就是让用户无法正常登陆

取消冻结的密码,使之恢复登陆实际同样是修改/etc/shadow的密码栏,在密码栏的开头取消“! ”号即表示恢复

实例1:使用不同的方法修改/etc/passwd中用户的说明栏

提示:在添加新用户时,如果不使用-n参数系统会自动创建一个与用户同名嘚用户组,如本例就自动生成了一个andy6的用户组

实例3:使用户在后过期

实例4:冻结andy6用户的密码

用户管理的一项重要内容是用户口令的管理鼡户账号刚创建时没有口令,但是被系统锁定无法使用,必须为其指定口令后才可以使用即使是指定空口令。

指定和修改用户口令的Shell命令是passwd超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令命令的格式为:

-f , --force 强迫用户下次登录时修改口令。

實例1:我们用-l参数来锁定andy用户使之不能修改密码,然后再用-u参数来解除锁定

#锁定之后用andy账户登录系统,再修改密码会提示:

实例2:举┅个组合参数-x -n -w -i控制密码时效的例子要求andy用户7天内不能更改密码,60天以后必须修改密码过期前10天通知andy用户,过期后30天后禁止用户登陆

在root賬户下修改andy的密码然后回到andy账户,再次修改密码出现如下提示:

例如假设当前用户是olcs,则下面的命令修改该用户自己的口令:

如果是超级用户可以用下列形式指定任何用户的口令:

普通用户修改自己的口令时,passwd命令会先询问原口令验证后再要求用户输入两遍新口令,如果两次输入的口令一致则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令

为了系统安全起见,用户應该选择比较复杂的口令例如最好使用8位长的口令,口令中包含有大写、小写字母和数字并且应该与姓名、生日等不相同。

为用户指萣空口令时执行下列形式的命令:

此命令将用户sam的口令删除,这样用户sam下一次登录时系统就不再询问口令。

passwd命令还可以用-l(lock)选项锁定某┅用户使其不能登录,例如:

--stdin方式修改设置密码:

 /etc/passwd是用户数据库其中的域给出了用户名、加密口令和用户的其他信息. /etc/shadow是在安装了影子(shadow)ロ令软件的系统上的影子口令文件。影子口令文件将/etc/passwd 文件中的加密口令移动到/etc/shadow中而后者只对超级用户( r o o t )可读。

口令时效是系统管理员用来防止机构内不良口令的一种技术在Linux系统上,口令时效是通过chage命令来管理的格式为:chage [option] username 

下面列出了chage命令的选项说明:

-m days: 指定用户必须改变ロ令所间隔的最少天数。如果值为0口令就不会过期。
-M days: 指定口令有效的最多天数当该选项指定的天数加上-d选项指定的天数小于当前的ㄖ期时,用户在使用该帐号前就必须改变口令
-d days: 指定从1970年1月1日起,口令被改变的天数
-E date: 指定帐号被锁的日期。日期格式YYYY-MM-DD若不用日期,也可以使用自1970年1月1日后经过的天数
-W days: 指定口令过期前要警告用户的天数。
-I --inactive: 在密码过期后多少天用户被禁掉,仅能以root操作

该命令记住两个参数-E , -l即可其它的选项可以使用passwd来替代!

例如下面的命令要求用户user1两天内不能更改口令,并且口令最长的存活期为30天口令过期前5忝通知用户

可以使用如下命令查看用户user1当前的口令时效信息:chage -l user1

1)可以使用chage 进入交互模式修改用户的口令时效。

2)修改口令实质上就是修改影子口令文件/etc/shadow中与口令时效相关的字段值

动态密码:第三方提供也可自己开发

Linux系统用户组的管理

每个用户都有一个用户组,系统可鉯对一个用户组中的所有用户进行集中管理不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组这个用户组在创建鼡户时同时创建。用户组的管理涉及用户组的添加、删除和修改组的增加、删除和修改实际上就是对/etc/group文件的更新。

指定用户组GID值除非接-o参数(如:groupadd -g 1234 -o andy),否则ID值必须是唯一的数字(不能为负数)如果不指定-g参数,则预设值会从500开始

新增一个账户,强制覆盖一个已经存茬的用户组账号

1、增加一个新的用户组

增加一个新的用户组使用groupadd命令,其格式如下:
-g GID 指定新用户组的组标识号(GID)
-o 一般与-g选项同时使鼡,表示新用户组的GID可以与系统已有用户组的GID相同
此命令向系统中增加了一个新组olcs,新组的组标识号是在当前已有的最大组标识号的基礎上加1
此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101

如果要删除一个已有的用户组,使用groupdel命令其格式如下:

此命令從系统中删除组group1。

修改用户组的属性使用groupmod命令其语法如下:

-g GID 为用户组指定新的组标识号。 -o 与-g选项同时使用用户组的新GID可以与系统已有鼡户组的GID相同。 -n新用户组 将用户组的名字改为新名字
此命令将组group1的组标识号修改为102
此命令将组group1的标识号改为10000,组名修改为group2

4、用户在用戶组间切换

如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换以便具有其他用户组的权限。用户可以在登录后使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组例如:

这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成Linux系统中的普通用户也有超级用户的权限

Linux中,将使用系统资源的人员分为4类:超级用户、文件或目录的属主、属主的同组人和其他人员超级用户拥有对Linux系统一切操作权限,对於其他3类用户都要指定对文件和目录的访问权限

可以列出目录中的文件列表

可以在目录中创建删除文件

可以使用cd命令进入该目录

2、查看攵件和目录的权限

可以使用带l参数的ls命令查看文件或目录的权限

每一行显示一个文件或目录的信息,这些信息包括文件的类型、文件的权限、文件的属主和文件的所属组还有文件的大小以及创建时间和文件名。输出列表中每 一行第一列的第一个字母指示了该文件的类型各种文件类型及代表字符如下:

b:块文件设备,是特殊的文件类型 d:目录文件 事实上在ext2fs中,目录是一个特殊的文件 c:字符文件设备 是特殊的文件类型 l:符号链接文件,实际上它指向另一个文件 s、p:管道文件这些文件关系到系统的数据结构和管道,通常很少见到

第一列嘚其余9个字母可分为三组3个字母一组,这3组分别代表:文件属主的权限、文件所属组的权限和其他用户的权限每组中的3个栏位分别表礻读、 写、执行权限。

2~10个字符当中的每3个为一组左边三个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限右邊3个字符是其他用户的权限。这三个一组共9个字符代表的意义如下:

r(Read,读取):对文件而言具有读取文件内容的权限;对目录来说,具囿浏览目录的权限

w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说具有删除、移动目录内文件的权限。

x(eXecute执行):对攵件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限

-:表示不具有该项权限。

系统管理员和文件属主可以根据需要来设置文件的权限有两种设置方法:文字设定法和数值设定法。

第1个选项表示要赋予权限的用户具体说明如下: 
 u:属主 g:所属组鼡户 o:其他用户 a:所有用户
第2个选项表示要进行的操作,具体说明如下:
 +:增加权限 -:删除权限 =:分配权限同时将原有权限删除
第3个选項是要分配的权限,具体说明如下:
 r/x/w:允许读取/写入/执行 u/g/o:和属主/所属组用户/其他用户的权限相同
chmod u+x,go-r users //对文件users的属主添加执行权限同时取消組用户和其他用户对文件的读取权限

其中n1、n2、n3分别代表属主的权限、组用户的权限和其他用户的权限,这三个选项都是八进制数字

chmod 755 adduser //对文件adduser的属设置可读、写和执行的权限,所属组和其他用户只设置读和执行权限没有写权限

备注:如想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改要使用参数-R表示启动递归处理。

改变文件的属主和组可以用chown命令命令格式为:chown [-R] 。

5、设置文件和目录的生成掩码

用户可以使用umask命令设置文件夹的默认生成掩码默认的生成掩码告诉系统当创建一个文件或目录时不应该赋予哪些权限。洳果用户将umask命令放在环境文件(.bash_profile)中就可以控制所有的新建文件或目录的访问权限。其命令格式为:umask [u1u2u3]其中u1、u2、u3分别表示的是不允许属主有的权限、不允许同组人有的权限和不允许其他人有的权限。

umask 022 //设置不允许同组用户和其他用户有写权限 umask //显示当前的默认生成掩码

用法非瑺简单只需执行umask 777 命令,便代表屏蔽所有的权限因而之后建立的文件或目录,其权限都变成000依次类推。通常root帐号搭配umask命令的数值为022、027囷077普通用户则是采用002,这样所产生的权限依次为755、750、700、775

用户登录系统时,用户环境就会自动执行rmask命令来决定文件、目录的默认权限

除了上述的基本权限之外,还有所谓的特殊权限存在由于特殊权限会拥有一些“特权”,因而用户若无特殊需要不应该去打开这些权限,避免安全方面出现严重漏洞甚至摧毁系统。下面列出了3个特殊权限的说明:

SUID:当一个设置了SUID位的可执行文件被执行时该文件以所囿者的身份运行,也就是说无论谁来执行这个文件他都拥有文件所有者的特权,可以任意存取该文件拥有者能使用的全部系统资源如果所有者是root,那么执行人就有超级用户的特权了

SGID:当一个设置了SGID位的可执行文件被执行时,该文件将具有所属组的特权任意存取整个組所能使用的系统资源;若一个目录设置了SGID,则所有被复制到这个目录下的文件其所属的组都会被重设为和这个目录一样,除非在复制攵件时加上-p(preserve保留文件属性)参数,才能保留原来 所属的群组设置

sticky-bit:对一个文件设置了sticky-bit之后,尽管其他用户有写权限也必须由属主執行删除、移动等操作,对一个目录设置了 sticky-bit之后存放在该目录下的文件仅允许其属主执行删除、移动等操作。

一个设置了SUID的典型例子是passwd程序它允许普通用户改变自己的口令,这是通过改变/etc/shadow文件的口令字段来实现的然而系 统管理员决不允许普通用户拥有直接改变/etc/shadow文件的權限。解决方法是将passwd程序设置SUID当passwd被执行时将拥有超级用户的权限,而passwd程序运行结束又回到普通用户的权限下面是显示passwd程序的权限:

一個设置了sticky-bit的典型例子是系统临时文件目录/tmp,这避免了不守法的用户存心搞鬼恣意乱删其他用户存放的文件。下面显示/tmp 目录的权限:

从上媔的显示可以看出SUID是占用属主的x位置为表示的;SGID是占用组的x位置来表示的;sticky-bit是占用其他人的x位置来表示 的。在表示上有大小定之分假若同时设置执行权限和SUID、SGID和sticky-bit,权限标识字符是小写的;倘若关闭执行权限则标识字符会变成大写。

使用chmod命令设置特殊权限仍然有字符設定法和数值设定法之分。使用字符设定法时可以使用s和t权限字符,

使用chmod的数值设定法时要使用4位八进制数值,其中第一位八进制数鼡于设置特殊权限后三位八进制数用于设置基本权限。

- :如果执行su -时表示该用户想要变换身份成为root,且使用root的环境设置参数文件如/root/.bash_profile等。
-l:后面可以接用户例如su -l dmtsai,这个-l的好处是可使用变换身份者的所有相关环境设置文件。
-m:-m与-p是一样的表示“使用当前环境设置,洏不重新读取新用户的设置文件“
-c:仅进行一次命令,所以-c后面可以加上命令

注意:建议如果切换成为某个身份,使用su -或者su - username否则,嫆易造成环境变量的差异

例:以某个用户的身份去执行某个命令

思考题:linux root密码忘记了,如何找回

sudo就是让某个用户能够以另外任意一个鼡户的身份通过某些主机执行某些任务。记住了是以另外一个身份来执行命令,而不是切换到另一个用户上!

但是要想让某个用户能够使用sudo来执行命令的话必须要在sudo的配置文件定义才可以,只有在/etc/sudoers中定义过的用户才可以执行相应的命令这些命令也必须要在sudo的配置文件/etc/sudoersΦ定义才可以,默认情况下只有root用户才可以使用sudo执行命令。

一般情况下我们要想编辑某个配置文件,直接使用vim命令即可但是由于使鼡vim编辑的配置文件无法检查增减条目的语法,因此我们一般不建议使用vim直接编辑而是使用另外一种命令来编辑/etc/sudoers文件。

visudo:该命令默认情况丅就是用来编辑/etc/sudoers文件的该命令可以检查这个文件的语法错误,因此如果要想修改/etc/sudors文件时,使用visudo来编辑更好这样就不会出现什么问题叻。

visudo -f filename:也可以用来编辑其他配置文件的只要加上-f和指定文件即可。

which_host:表示登入者来源主机ALL表示所有主机

runas:表示以哪一个用户身份来执荇,默认情况下不加用户,表示以root身份来执行

command: 规范这个用户可以使用sudo执行哪些命令(这些命令要使用绝对路径)。ALL表示所有命令

凊景模拟一:要想让hadoop这个用户能够以root的身份来执行useradd,usermod命令该如何实现?

1、默认情况下只有root用户才有权限使用useradd,usermod命令的
//添加下面两行内嫆第一行为注释
4、再次使用sudo以root身份来添加用户

注意:在上述这个过程中,每次执行命令时都要输入密码这是因为如果某个用户有事离開了但是却没有退出当前用户,这时任何一个用户就可以在此主机上执行任何命令修改root密码,或者删除有关信息等等这对于系统来说昰极不安全的。因此在每次执行命令前都需要输入当前用户自身的密码,该密码有效期为5分钟(5分钟内执行任何命令不需要输入密码)5分钟过后就要重新输入了。要想在执行某些命令时不需要输入密码,可以在某些命令前加上"NOPASSWD:"等TAG信息

禁止修改root用户的密码

注意:在增加某个条目时如果规定了某个用户可以执行修改密码的命令时,也就是该用户可以执行/usr/bin/passwd这个命令对于root用户来说,其密码是不能随便修改嘚要去掉修改root账号密码的命令。使用!来取反这样一般用户就不能修改root的密码了。

/usr/bin/passwd [A-Za-z]*:表示在执行passwd命令时需要输入修改的账号名,因为如果不加账号名默认修改的也是root的密码,因此这也是不可以的
-u:后面可以接用户账号名称,或者UID例如UID是500的身份,可以:-u #500来作为切换到UID為500的那位用户 -l :列出用户在主机上可用的和被禁止的命令:当配置好sudo授权规则后,可用这个参数来查看授权情况 -v :验证用户的时间戳:當用户运行sudo输入用户的密码后,在短时间内可以不用输入口令直接进行sudo操作; -k :同-K删除用户时间戳

注意:sudo的执行权限与/etc/sudoers文件有关,如果要修改该文件建议使用visudo来编辑,而不要直接以vi去编辑它因前者可以进行文件内部的语法检查。

前文我们已经讲解过使用su命令切换鼡户身份虽然简单,但是也有一些致命的缺点:

1)普通用户必须知道root密码才可以切换到root这样root密码就泄露了,相当于把“刀把”交给了别囚

2)使用su命令切换身份无法对切换后的身份做精细的控制,拿到超级权限的人可以为所欲为甚至可以改掉root密码,让真正的管理员无法洅拥有root权限

那么怎么来解决最高管理员不泄露root密码,而又能让普通用户拥有一定的超级权限来管理系统并且能让超级特权可控呢这就偠引出我们本节的主角----sudo命令

通过suod命令,我们可以把某些超级用户权限分类有针对性(精细)授权给指定的普通用户并且普通用户不需要知道root密码就可以使用得到的授权(管理员真正允许的root权限)。因此毫不夸张的说,sudo命令相对于su命令来说在系统用户的分权管理方面进步了很多,使得集权式管理在理论上得到了保证从而使系统的安全性方面加强了很多。

sudo命令执行的大概流程:

a)当用sudo执行命令时系统艏先会查找/var/run/sudo/%HOME(如果是新用户会先生成此目录)目录中是否有用户时间戳文件,如果时间戳文件过期则提示用户是否输入自身的密码(注意:这里需要输入当前执行命令用户的密码,不是root或其他要切换的用户的密码)

b)当密码验证成功后系统会查找/etc/sudoers配置文件,判断用户是否有执行相应sudo命令权限

c)如果具备执行相应sudo命令权限,就会自动由当前用户切换到root(或其它指定切换的用户)然后以root(或其它指定的切换的用户)身份角色执行该命令。

d)执行完成后又会自动的直接退回到当前用户shell下

通过这个sudo执行的流程,我们可以看出在执行sudo的过程中,我们无须知道root的密码就可以执行root权限执行的工作此外,用户能够执行的命令是可以被sudo配置文件控制的比如我们可以对某一个用戶仅授权reboot的工作。

能够完成上述流程的权限控制我们完全依赖/etc/sudoers这个配置文件,在默认的情况下普通用户无法使用sudo,只有编辑/etc/sudoers文件加入鼡户的授权规则后才可以这就需要visudo命令(更改/etc/sudoers配置文件的标准工具)。下面我们先来体验下sudo命令的魅力

列出用户在主机上可用的和被禁止的命令;当配置好sudo授权规则后,可用这个参数来查看授权

验证用户的时间戳;当用户运行sudo输入用户的密码后,在短时间内可以不用輸入口令直接进行sudo操作;用-v可以跟踪最新的时间戳

指定以某个用户身份执行特定的命令操作

同-K删除时间戳,下一个sudo命令要求提供密码湔提是该用户授权中不能有NOPASSWD:参数

提示:sudo命令的参数也很多,但在生产场景中经常使用的比较少这里我们还是讲解常用的参数,更多详細的参数请执行 man sudo查阅帮助

实例1:使用andy用户在/root目录下建立文件

现在配置sudoers文件,对andy用户授权(root账户下授权): #回到andy账户再次创建文件夹

实唎3:使用用户组的方式实现sudo授权

通过授权一个用户组的方式来配置/etc/sudoers,如:授权sa组具备以上所有主机的管理权限这样以后有增加用户需要楿同的授权时,直接将用户加入到sa组就可以享受sa组的sudo授权了!

有时候如果某些用户需要执行相同的命令如果一个一个的为他们添加sudo条目時,会比较麻烦这时我们可以为某些用户或者某些命令创建别名,以别名的方式为他们添加sudo条目这样就方便多了。

在定义别名时必须別名名称只能是大写英文字母可以为sudo条目中的每一个字段定义一个别名

aliasname可以是用户名、组名(使用%引导)、还可以包含其他的用户别名(嵌套) aliasname可以是主机名、ip-addr、网络地址、其他主机别名(嵌套) liasname可以是用户名、组名(前面加上%)、其他Runas别名(嵌套) aliasname可以是命令路径(绝對路径)、目录(此目录内的所有命令)、其他事先定义过的别名

1)所有的命令别名下的成员必须是文件或目录的绝对路径

2)命令超过一荇时,可以通过“\”号换行

实例3:定义runas别名

情景模拟二:有3个用户hadoop、xsl、test都可以执行useradd、passwd命令,该如何操作

可以在/etc/sudoer中添加如下条目即可:

sudo配置配置文件/etc/sudoers授权规则注意事项总结:

1)授权规则中所有ALL字符串必须为大写

2)禁止的命令尽量放在后面,如下但尽量不要使用排除的方式

3)一行内容超长可以使用“\”斜线换行

#这一行代码的意思是:

授权用户 主机=(指定的可切换的用户) 可以执行的命令动作

因此上面一行授权内容的实际意思是:adny用户可以在所有的主机上,切换到所有的用户执行所有的命令。如果想要andy这个用户切换到ett用户下执行命令那麼可以写成:

#---> 注:(ett)段内容省略的话,默认就是root用户那么andy用户只能切换到root(不能切换到其它用户)执行命令

下面我们结合别名授权和用户授权规则举几个综合应用的例子:

实例1:对andy的授权规则如下:

在测试之前,为了防止已有的配置干扰我们把所有的配置恢复到默认情况,通过visudo命令在/etc/sudoers中添加上面的内容表示andy用户可以在所有系统中,切换到root用户下以root身份执行/usr/sbin/useradd and /usr/sbin/userdel命令授权完成后,切换到andy用户下查看授权的结果:(切换到andy用户下)

值得注意的是本例省略了指定切换到哪个用户下执行命令,根据前文的讲解默认的情况下是切换到root用户下执行,同时授权时未加NOPASSWD:配置,因此第一次执行的时候需要验证密码:

但此时执行sudo useradd andy2命令时,还是提示andy用户不允许执行上面的两个命令这是洇为普通用户PATH路径问题,可以临时执行全路径来添加用户当然也可以在andy用户下配置好环境变量。

特别提示:有关上面普通用户下执行命囹提示找不到的问题实际解决操作方法为:

andy用户下编辑隐藏文件.bash_profile修改成如下内容后保存:

#此时就不需要使用全路径执行useradd等命令了

可以加上NOPASSWD:规则,执行命令时不需要输入密码:

实例:用户组的配置例子

表示andy用户组下所有成员在所有的主机下,可切换到root用户下运行/usr/sbin and /sbin目录下嘚所有命令*为正则表达式的写法,表示所有

实例:练习禁止某个命令的执行:

禁止某个命令的执行要在命令前加上!号

这条规则表示andy鼡户在所有主机上可运行/usr/bin和/sbin下所有的命令,但fdisk命令除外

默认情况下我们是无法通过ssh远程执行sudo命令的,可是在实际生产场景中我们经常有這样的需求那怎么解决呢?

“Defaults requiretty”就是禁止通过ssh远程执行sudo命令的配置禁止的原因是因为会显示明文密码。但是我们可以通过“ssh -t hostname sudo <cmd>”的方式來执行也就是加个-t的参数,这是一个可以强制ssh远程执行本来需要屏幕的程序会强制配置终端tty,即使本地没有

whoami: 用于显示当前用户的洺称
groups []: 用于显示指定用户所属的组,若未指定用户则显示当前用户所属的组

id: 用于显示用户当前的UID、GID和用户所属的组列表

su [-][]: 用于转换当湔用户到指定的用户帐号,若不指定用户名则转换当前用户到root;若使用参数“-”则在转换当前用户的同时转换用户工作环境。

newgrp []: 用于转換用户的当前组到指定的附加组用户必须属于该组才可以进行。

使用权限 : 所有使用者

说明 : Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他利用 chmod 可以藉

以控制档案如何被他人所存取。

+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限 
r 表示可读取,w 表示可写入x 表示可執行,X 表示只有当该档案是个子目录或者该档案已经被
-c : 若该档案权限确实已经更改才显示其更改动作 
-f : 若该档案权限无法被更改也不要显礻错误讯息 
-v : 显示权限变更的详细资料 
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更) 

说明 : Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者利用 chown 可以将档案的拥有者加以改变。一般来说这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限

user : 新的档案拥有者的使用鍺 
-c : 若该档案拥有者确实已经更改,才显示其更改动作
-f : 若该档案拥有者无法被更改也不要显示错误讯息
-h : 只对于连结(link)进行变更而非该 link 真正指姠的档案
-v : 显示拥有者变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)

批量创建10个用户stu01-stu10,並且设置随机8位密码要求不能用shell循环(如:for,while等),只能用命令及管道实现


  

上述命令实际就是再拼N条下面的命令的组合举一条命令stu01用户嘚过程拆解如下:

阿里巴巴为您推荐小学数学公式萣律速查词典小学生一二三四五六年级123456什么意思6上下册教材课本练习字典小升初应用题基础思维训练知识定义大全手册书产品的详细参数实时报价,价格行情优质批发/供应等信息。

我要回帖

更多关于 123456什么意思 的文章

 

随机推荐