❶ linux帐号管理详解
对于Linux管理者来说,“帐号管理”是再也普通不过的一个环节了,但每次都要去查一大本的手册实在是很浪费时间。我还是老老实实地花点心思把这些常用的功能都整理成一份文档,方便以后的使用和学习,以后也都会继续这样做下去。 本文的所有案例与说明都是基于Ubuntu 16.04.3 LTS 64位操作系统,如果你的操作系统与我的不一样,可能会出现不一样的结果。但Linux的原理都是通用的,善于使用man可以帮助你更好的管理你的操作系统。 上图一共列出了9个相关文件,但这里我只重点讲解前三个文件,也即是 /etc/passwd、/etc/shadow 与 /etc/group。 1、/etc/passwd User account information. –(明文的)用户账号信息 这个文件每一行都代表一个帐号,有几行就代表有几个帐号在你的系统中!不过需要特别注意的是,里面很多帐号本来就是系统正常运行所必须的,我们可以简称它为系统帐号。这些帐号都是你不能随便删除的! 通过查看passwd(5)手册可以查看/etc/passwd的文件结构: 文件结构说明: “/etc/passwd” 第二项的内容说明 2、/etc/shadow Secure user account information. – 安全加密的用户账号信息 通过查看shadow(5)手册也可以查看/etc/shadow的文件结构: 如shadow(5)中所述,这个文件中被 “:” 分隔的每项含义如下。 3、/etc/group Group account information. – 组信息 通过查看group(5)手册也可以查看/etc/group的文件结构: 如group(5)中所述,这个文件中被“:”分隔的每项含义如下。 注意: “/etc/gshadow” 为 “/etc/group” 提供了与 “/etc/shadow” 相似的功能,但没有被真正地使用。 4、/etc/gshadow Secure group account information. – 安全加密的组信息 5、/etc/default/useradd Default values for account creation. – 创建用户时的默认设置 6、/etc/skel/ Directory containing default files. – 用户主目录的默认内容 7、/etc/subgid Per user subordinate group IDs. 8、/etc/subuid Per user subordinate user IDs. 9、/etc/login.defs Shadow password suite configuration. 1、添加用户 — useradd useradd — create a new user or update default new user information. 常用参数: 例1:最简单的例子 例2:创建一个可以使用的帐号 例3:查看useradd默认设置 使用useradd创建用户时还会参考文件/etc/login.defs的设置,比如UID/GID的指定数值、用户主文件夹设置值、用户删除与密码设置值等,这里也不做深入讨论了。 2、用户密码管理 — passwd passwd – change user password 常用参数: 3、用户密码管理 – chage chage – change user password expiry information 4、用户信息修改 — usermod usermod – modify a user account 当然,以上的修改你也可以通过手动修改相关的配置文件来达到一样的目的。 5、删除用户 — userdel userdel – delete a user account and related files 注意: 1)一般而言,该帐号如果只是暂时不启用的话,那么将/etc/shadow里面帐号失效日期(第八字段)设置为0就可以让该帐号无法登录,但所有相关的数据都会留下来。使用userdel的时候通常是你真的确定不要该用户在主机上面用任何数据了! 2)如果想要完整地将某个帐号删除,最好可以执行userdel -r username之前,先以“find / -user username”查出整个系统内属于username的文件,然后再进行删除。 1、初始用户组(initial group)与 有效用户组(effective group): 在/etc/passwd里面的第四列有一个所谓的GID,它就是“ 初始用户组 ”。也就是说,当用户登录系统,立刻就拥有这个用户组的相关权限的意思。 有效用户组:即帐号当前(实时)所使用的用户组。 次要用户组:次要用户组就是除了用户的初始用户组外的其它所属组,在/etc/group的最后一个字段中所设置,可以有多个(多个用逗号','隔开)。 使用usermod -g可以修改初始用户组,而使用usermod -G则可以修改次要用户组。 例1:修改用户次要用户组 例2:有效与支持用户组的查看 在这个输出的信息中,可知道nosee这个用户同时属于nosee及users这两个组,而且,第一个输出的即为“ 有效用户组 ”。也就是说,上面例子中的有效用户组为nosee。 2、有效用户组的切换 — newgrp 上面例子中,nosee的有效用户组从nosee转变成了users。 现在我们来深入讨论下newgrp这个命令,这个命令可以更改目前用户的有效用户组,而且是另外以一个新的shell来提供这个功能。因此如果你想要回到原本的环境中,只需要输入exit即可。 3、新增用户组 — groupadd groupadd – create a new group 常用参数: 4、用户组参数修改 — groupmod groupmod – modify a group definition on the system 常用参数: 注意:不要随意改动GID,容易造成系统资源的错乱。 5、删除用户组 — groupdel groupdel – delete a group 注意,只有在/etc/passwd内没有任何用户使用该用户组的作为初始用户组的时候,才可以成功删除。 6、用户组管理员功能 — gpasswd gpasswd – administer /etc/group and /etc/gshadow 1)系统管理员(root)的常用参数 2)用户组管理员(Group administrators)的常用参数 1、su su – change user ID or become superuser su是最简单的身份切换命令了,它可以进行任何身份的切换。 常用参数: 注意: 1)这个su的用法当中,有没有加上“-”差很多的,转为涉及login-shell与not-login shell的变量读取方法。即想要完整的切换到新用户的环境,可以利用“su – username”或“su -l username”。 2)使用root切换到任何用户时,都不需要输入密码 3)当从其它用户切换到root用户时都必须输入root的密码,这样root的密码就很容易流传出去,这是很不妥当的,所以才会有sudo这个命令的出现。 2、sudo sudo, sudoedit — execute a command as another user sudo的执行仅需要自己的密码,甚至可以设置不需要密码即可执行sudo。由于sudo可以让你以其他的用户身份执行命令(通常是root的身份),因此并不是所有人才能执行sudo,而是仅有/etc/sudoers内的用户才能够执行so这个命令。 /etc/sudoers文件内容如下: 常用参数: 例:使用nosee的身份在/home/nosee/目录下新建一个test文件 sudo的执行流程: 1)当用户执行sudo时,系统于/etc/sudoers文件查找该用户是否有执行sudo的权限; 2)若用户具有可执行sudo的权限后,便让用户输入自己的密码来确认; 3)若密码输入成功,便开始进行sudo后续接的命令(但root执行sudo时不需要输入密码); 4)若欲切换的用户与执行者身份相同,那也不需要输入密码。 因为/etc/sudoers文件有一定的规则,所以我们一帮不直接用vi去编辑。一般,我们都是使用visudo来修改这个文件。 3、visudo 因为/etc/sudoers是有语法的,如果设置错误那会造成无法使用sudo的不良后果,因此才会使用visudo去修改。 一般来说,visudo的设置方式有几种简单的方法,正面我们以几个简单的例子来说明: 1)单一用户可以进行root的所有命令与sudoer文件语法 例:让用户nosee可以使用root的所有命令 2)利用用户组及免密功能处理visudo 例:让nosee用户组可以使用root的所有命令,并且不需要输入密码 注意:用户组的表示只需要在前面加一个百分号%即可,NOPASSWD则是免密的关键字。 3)有限制的命令操作 例:让user1用户仅能使用passwd这个命令帮root修改其他用户的密码 注意:最后一个参数一定要用绝对路径才行,否则visudo会出现语法错误。 但这里有个可怕的地方,就是用户user1竟然也可以去修改root的密码了,这是不应该允许发生的,为了避免上述的问题,应该使用下面的这种配置: 上面参数的意思是,用户user1可以执行“passwd 任意字符串”,但是“passwd”与“passwd root”两个命令除外。 4)通过别名设置visudo 5)sudo的时间间隔问题 两次执行sudo的间隔时间在5分钟内,那么再次执行sudo时就不需要再次输入密码。 6)sudo搭配su的使用方式 很多时候我们需要大量执行很多root的工作,所以一直sudo觉得麻烦。这里有一个变身root用户的办法,而且还不会外泄root密码,前提是你要非常信任你将要为他们做此次设置的用户。 1、查看用户当前所用的shell 1)实时查看当前进程中使用的shell种类:推荐 2)最常用的查看shell的命令,但不能实时反映当前shell 3)环境变量中shell的匹配查找 4)口令文件中shell的匹配查找 2、强制踢出已登录用户 或也可以给他发送一条信息。 3、adser adser也可以用于用户的添加,感觉兴趣的同学可以自行去查阅相关的资料。 1、《鸟哥的Linux私房菜基础学习篇》– 鸟哥 2、 Debian官方参考手册 如发现有写得不对或不好的地方非常欢迎到评论区指出与交流,感谢阅读! ——《完》
❷ 用户配置文件怎么给某些用户或组群配置权限
linux下会将一个用户分配到一个用户组内,进行统一管理,所以,linux下会建立一个passwd表和group表,这两个表负责管理用户和用户组,并且会将两个表中的密码进行单独提出,分配两个表分别是shadow负责管理用户密码和gshadow负责管理用户组密码。
1.passwd:
组名:口令:组管理者:组内用户列表 1) 组名: 是用户组的名称,由字母或数字构成。 2) 口令:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码3) 组管理者:这个字段也可为空,如果有多个用户组管理者,用,号分割4) 组内用户列表:如果有多个成员,用,号分割;
重心:
关于组和组列表已经讲解完了,我们开始通过命令的方式添加一个用户让大家做详细了解。我们要做的就是在最后一行复制一个进行修改就可以了
以tom为名字
添加passwd中的用户
[[email protected] /]# vim /etc/passwd
添加shadow中密码行
[[email protected] /]# vim /etc/shadow
添加一个group组
[[email protected] /]# vim /etc/group
添加一个group组密码
[[email protected] /]# vim /etc/gshadow
创建一个home文件夹
[[email protected] /]# mkdir /home/tom
拷贝 出事文件到tom文件夹下
[[email protected] /]# cp -r /etc/skel/ /home/tom/
修改所属用户和用户组
[[email protected] /]# chown -R tom:tom /home/tom/
添加一个新文件到mail下
[[email protected] /]# touch /car/spool/mail/tom
修改所属用户组
[[email protected] /]# chown tom:mail/car/spool/mail/tom
这样就做好了
我们可以用userdel tom 删除这个用户如果直接删除就说明完全正确
开拓:
Linux下为目录和文件设置权限,包括子目录的循环递归设置
chmod 命令可以改变所有子目录的权限,下面有2种方法改变一个文件的权限: chmod mode file|dir改变所有子目录的权限: chmod mode dir -R 注意后面加了个-R参数参数就是权限模式 mode = 777 or 752 ,666,,,mode 的三个数字,分别表示owner,group,others所具有的权限。1 = x 执行 2 = w 写 4 = r 读,比如owner具有所有权限,1+2+4=7,又比如group 具有读 和执行权限 1+4 = 5
把目录/his及其下的所有文件和子目录的属主改成wang,属组改成users。$ chown –R wang.users /his
上传了个 WordPress,在线解压后发现文件没有写入权限, 于是用了 chmod 777filename但只改了该文件, 文件内的文件还是没有写入权限, 网上查了一下,修改linux文件权限命令:chmod用法:chmod XXX filename
×××(所有者组用户其他用户)
×=4 读的权限×=2 写的权限×=1 执行的权限
常用修改权限的命令:
sudo chmod 600 ××× (只有所有者有读和写的权限)sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
sudo chmod 666 ××× (每个人都有读和写的权限)
sudo chmod 777 ××× (每个人都有读和写以及执行的权限)
例如:- rw- r–r–
普通文件 文件主组用户其他用户是文件sobsrc.tgz 的访问权限,表示sobsrc.tgz是一个普通文件;sobsrc.tgz的属主有读写权限;与sobsrc.tgz属主同组的用户只有读权限;其他用户也只有读权限。确定了一个文件的访问权限后,用户可以利用Linux系统提供的chmod命令来重新设定不同的访问权限。也可以利用chown命令来更改某个文件或目录的所有者。利用chgrp
命令来更改某个文件或目录的用户组。下面分别对这些命令加以介绍。chmod 命令chmod 命令是非常重要的,用于改变文件或目录的访问权限。用户用它控制文件或目
录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。1. 文字设定法chmod [who] [+ | –| =] [mode]文件名?
命令中各选项的含义为:操作对象who可是下述字母中的任一个或者它们的组合:u 表示”用户(user)”,即文件或目录的所有者。g 表示”同组(group)用户”,即与文件属主有相同组ID的所有用户。o 表示”其他(others)用户”。a 表示”所有(all)用户”。它是系统默认值。
操作符号可以是:+ 添加某个权限。- 取消某个权限。= 赋予给定权限并取消其他所有权限(如果有的话)。设置mode所表示的权限可用下述字母的任意组合:r 可读。w 可写。x 可执行。X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式”u+s”设置文件的用户ID位,”g+s”设置组ID位。t 保存程序的文本到交换设备上。u 与文件属主拥有一样的权限。g 与和文件属主同组的用户拥有一样的权限。o 与其他用户拥有一样的权限。
文件名:以空格分开的要改变权限的文件列表,支持通配符。在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+rexample使同组和其他用户对文件example 有读权限。2. 数字设定法我们必须首先了解用数字表示的属性的含义:0 表示没有权限,1 表示可执行权限,2表示可写权限,4 表示可读权限,然后将其相加。所以数字属性的格式应为3个从0 到7的八进制数,其顺序是(u)(g)(o)。例如,如果想让某个文件的属主有”读/写”二种权限,需要把4 (可读)+2 (可写)=6 (读/写)。
数字设定法的一般形式为:chmod [mode]文件名?
例子:(1)文字设定法:例1:$ chmod a+x sort即设定文件sort 的属性为:文件属主(u)增加执行权限与文件属主同组用户(g)增加执行权限其他用户(o)增加执行权限例2:$ chmod ug+w,o-x text即设定文件text的属性为:文件属主(u)增加写权限与文件属主同组用户(g)增加写权限其他用户(o)删除执行权限例3:$ chmod u+s a.out假设执行chmod后a.out 的权限为(可以用ls –l a.out命令来看):-rws–x–x 1 inin users 7192 Nov 4 14:22 a.out并且这个执行文件要用到一个文本文件shiyan1.c,其文件存取权限为”-rw——-”,
即该文件只有其属主具有读写权限。当其他用户执行a.out这个程序时,他的身份因这个程序暂时变成inin(由于chmod命令中使用了s选项),所以他就能够读取shiyan1.c这个文件(虽然这个文件被设定为其他人不具备任何权限),这就是s 的功能。因此,在整个系统中特别是root本身,最好不要过多的设置这种类型的文件(除非必要)这样可以保障系统的安全,避免因为某些程序的bug而使系统遭到入侵。例4:$ chmod a-x mm.txt$ chmod -x mm.txt$ chmod ugo-x mm.txt以上这三个命令都是将文件mm.txt 的执行权限删除,它设定的对象为所有使用者。(2)数字设定法:例1:$ chmod 644 mm.txt$ ls -l即设定文件mm.txt的属性为:-rw-r–r–1 inin users 1155 Nov 5 11:22 mm.txt文件属主(u)inin 拥有读、写权限与文件属主同组人用户(g)拥有读权限其他人(o)拥有读权限例2:$ chmod 750 wch.txt$ ls -l-rwxr-x— 1 inin users 44137 Nov 12 9:22 wchtxt即设定wchtxt这个文件的属性为:文件主本人(u)inin 可读/可写/可执行权与文件主同组人(g)可读/可执行权其他人(o)没有任何权限chgrp命令
功能:改变文件或目录所属的组。语法:chgrp [选项]group filename?该命令改变指定指定文件所属的用户组。其中 group 可以是用户组 ID,也可以是/etc/group 文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持
通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。该命令的各选项含义为:- R 递归式地改变指定目录及其下的所有子目录和文件的属组。例1:$ chgrp –R book /opt/local /book改变/opt/local /book/及其子目录下的所有文件的属组为book。chown 命令功能:更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。语法:chown [选项]用户或组文件说明:chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。
该命令的各选项含义如下:- R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。- v 显示chown命令所做的工作。例1:把文件shiyan.c 的所有者改为wang。$ chown wang shiyan.c例2:把目录/his及其下的所有文件和子目录的属主改成wang,属组改成users。$ chown –R wang.users /his
❸ Linux试卷,高分找人做~!
一、 选择茄野掘题(每题3分,共15分)1、 下面不是对Linux操作系统特点描述的是(B)A、良好的可移植性 B、单用户C、多用户 D、设备独立性2、 查看创建目录命令mkdir的帮助文档可以使用(颤核B)A、mkdir -h B、man mkdirC、help mkdir D、info mkdir3、 下面哪个命令不能用来显示文本的内容(C)A、more B、lessC、find D、cat4、 使用配置文件来管理用户组,其中相关的密码信息保存在(D)A、/etc/gshadow B、/etc/groupC、/etc/passwd D、/etc/shadow5、 下列日志类型输入Linux的是(B)A、事件日志 B、系统日志C、审核日志 D、安全日志二、 填空题(每空1分,共15分)1、Linux操作系统中的用户分为 管理员、普通用户和 guest 3种类型。2、Linux常见的图形界面主要有GNOME、KDE和 X 等。3、Linux有两种常用的文件系统分配,他们是块分配模块 和扩展分配。4、使用 df 命令可以查看系统的磁盘空间使用情况,默认情况下以 k 为单位显示大小。5、一般而言,DHCP可以用于两种情况,一是 自动分配 的局域网中,二是动态分配6、要在命令行上以后台方式启动进程,需要在执行的命令后添加 &符号。7、shell的运行模式包括交互式shell和 非交互式shell两种。8、编写的linux shell脚本中支持使用 位置变量、 外部变量和内部变量3中变量。三、 简答题(每题6分,共30分)1、简述Linux shell的主要功能,并介绍几种常用shell。a) 语法分析命令列b) 处理万用字符(wildcards)、转向(redirection)、管线(pipes)与工作控制(job control)c) 搜寻并执行命令Bash,DASH,TCSH2、简要介绍文件权限,以及如何修改一个制定文件的权限。 访问,写,执行;chmod 执行权限 文件 如:chmod 777 ./hhh3、简述日志文件的作用。答:重要的作用是审核和监测!以方便系统管理员了解系统的状态、检查系统故障和跟踪系统使用情况!4、简述Linux内核结构,以及各部分的功能。(1). 用户进程。用户应用程序是运行在Linux操作系统最高层的一个庞大的软件集合,当一个用户程序在操作系统之上运行时,它就成为操作系统的一个进程。(2). 系统调用接口。在应用程序中,可通过系统调用来调用操作系统内核中特定的过程,以实现特定的服务。如:在程序中安排一条创建进程的系统调用,则操作系统内核便会为之创建一个新的进程。(3) Linux内核。内核是操作系统的灵魂,它负责管理磁盘上的文件,内存,负责启动并运行程序,负责从网络上接收和发送数据包等等。内核实际是抽象的资源操作到具体的硬件操作细节之间的接口。(4) 硬件。这个子系统包括了Linux安装时需要的所有可能的物理设备。5、简述make的功能与作用。编译源代码,生成库文件,链接动态及静态库,生成可执行文件一、 综合应用题(共40分)1、 写入能实现以下功能的命令脊樱。(共10分)(1) 在根目录下创建名为mydir的目录;sudo mkdir /root/mydir -p (2) 在目录mydir下创建文本文件myfile1和myfile2;cd /root/mydir; touch myfile1 myfile2(3) 将文件myfile1更名为Myfile1;mv myfile1 Myfile1(4) 删除文件myfile2;rm myfile2(5) 复制文件Myfile1到根目录下。 cp Myfile1 /1、 编写shell脚本,实现如下功能:(1)从命令行读入2个整数;(2)对两个数进行大小比较;(3)在屏幕上输出比较结果;(4)写出该脚本的执行方法或流程。(共12分)#!/bin/bashIf [ $1 –gt $2 ];then echo $1else echo $2fi3、(1)使用C语言编写一个链表程序,链表节点数据结构可自定义,需实现链表的节点添加和删除功能;(2)写出该源程序的编译命令和执行命名;(3)写出可以用于自动化编译该程序的Makefile文件。(共18分)程序:自己写吧MakefileCC=gccall: $(CC) xx.c -o xx
❹ linux 下如何配置文件服务器,并如何做权限管理啊请指教。
解答一: 不使用share安全级别,你可以尝试使用samba的别名机制,通过修改smbusers名称映射文件来实现,在文件中设置访问的windows用户映射的samba用户账号即可。 应该可以实现你需要的效果。解答二: 你可以尝试使用samba做主域控制器。看可以不。网上有很多资料,我早前做过,步骤基本上不记得了!
❺ 用户和组的配置文件,getent,chage
password:密码占位符,实际存放在/etc/shadow GECOS:描述信息 pwunconv:密码实际存放在/etc/shadow里面,想存放回/etc/passwd,使用pwunconv命令 pwconv:将密码恢复到/etc/shadow chage [OPTION]… LOGIN -d LAST_DAY(距离UNIX元年最近漏伏孝一次修改密码的时间——上一次更改的日期) -E –expiredate EXPIRE_DATE(帐号到期的日期。过了这天,此帐号将不可厅神用) -I –inactive INACTIVE(停滞时期。如果一个密码已过期这些天,那么此帐号将不可用) -m –mindays MIN_DAYS(密码可更改的最小天数。为零返稿时代表任何时候都可以更改密码) -M –maxdays MAX_DAYS(密码使用最大天数) -W –warndays WARN_DAYS(用户密码到期前,提前收到警告信息的天数) –l 显示密码策略 .示例: chage -d 0 tom 下一次登录强制重设密码 chage -m 0 –M 42 –W 14 –I 7 tom chage -E 2016-09-10 tom
❻ linux同一权限中组长如何管理组员
/etc/group 文件是用户组的配置文件。/etc/passwd 文件是用户的配置文件。使用cat、more、less、head、tail以及vim等命令都可以查看、修改这两个配置文件。说明:/etc/passwd的文件内容格式:注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序 。以root用户为例。root是用户注册名,X表示密码保存在/etc/shadow,用户ID为0,所在用户组ID为0,用户名是root,home目录为/root,解释程序/bin/bash。/etc/group的文件内容格式: 组名:密码保存位置:组ID:组成员。以root用户组为例,即组名是root,密码保存位置为/etc/shadow,root组的GID为0,组下面的用户是root用户。
❼ Linux添加/删除用户和用户组
Linux添加/删除用户和用户组 本文总结了Linux添加或者删除用户和用户组时常用的一些命令和参数。 1、建用户:adser phpq //新建phpq用户passwd phpq //给phpq用户设置密码 2、建工作组groupadd test //新建test工作组 3、新建用户同时增加工作组useradd -g test phpq //新建phpq用户并增加到test工作组 注::-g 所属组 -d 家目录 -s 所用的SHELL 4、给已有的用户增加工作组usermod -G groupname username 或者:gpasswd -a user group 5、临时关闭:在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上*就可以了。想恢复该用户,去掉*即可。 或者使用如下命令关闭用户账号:passwd peter –l 重新释放:passwd peter –u 6、永久性删除用户账号userdel peter groupdel peter usermod –G peter peter(强制删除该用户的主目录和主目录下的所有文件和子目录) 7、从组中删除用户编辑/etc/group 找到GROUP1那一行,删除 A或者用命令gpasswd -d A GROUP 8、显示用户信息id usercat /etc/passwd 更详细的用户和用户组的解说请参考Linux用户和用户组详细解说本文主要讲述在Linux 系统中用户(user)和用户组(group)管理相应的概念;用户(user)和用户组(group)相关命令的列举;其中也对单用户多任务,多用户多任务也做以解说。 本篇文章来源于PHP资讯 原文链接: http://www.phpq.net/linux/linux-add-delete-user-group.html Linux用户(user)和用户组(group)管理概述、理解Linux的单用户多任务,多用户多任务概念;Linux是一个多用户、多任务的操作系统;我们应该了解单用户多任务和多用户多任务的概念; 1、Linux 的单用户多任务; 单用户多任务;比如我们以beinan 登录系统,进入系统后,我要打开gedit 来写文档,但在写文档的过程中,我感觉少点音乐,所以又打开xmms 来点音乐;当然听点音乐还不行,MSN 还得打开,想知道几个弟兄现在正在做什么,这样一样,我在用beinan 用户登录时,执行了gedit 、xmms以及msn等,当然还有输入法fcitx ;这样说来就有点简单了,一个beinan用户,为了完成工作,执行了几个任务;当然beinan这个用户,其它的人还能以远程登录过来,也能做其它的工作。 2、Linux 的多用户、多任务; 有时可能是很多用户同时用同一个系统,但并不所有的用户都一定都要做同一件事,所以这就有多用户多任务之说; 举个例子,比如LinuxSir.Org 服务器,上面有FTP 用户、系统管理员、web 用户、常规普通用户等,在同一时刻,可能有的弟兄正在访问论坛;有的可能在上传软件包管理子站,比如luma 或Yuking 兄在管理他们的主页系统和FTP ;在与此同时,可能还会有系统管理员在维护系统;浏览主页的用的是nobody 用户,大家都用同一个,而上传软件包用的是FTP用户;管理员的对系统的维护或查看,可能用的是普通帐号或超级权限root帐号; 不同用户所具有的权限也不同,要完成不同的任务得需要不同的用户 ,也可以说 不同的用户,可能完成的工作也不一样 ; 值得注意的是:多用户多任务并不是大家同时挤到一接在一台机器的的键盘和显示器前来操作机器,多用户可能通过远程登录来进行,比如对服务器的远程控制,只要有用户权限任何人都是可以上去操作或访问的; 3、用户的角色区分; 用户在系统中是分角色的,在Linux 系统中,由于角色不同,权限和所完成的任务也不同;值得注意的是用户的角色是通过UID和识别的,特别是UID;在系统管理中,系统管理员一定要坚守UID 唯一的特性; root用户:系统唯一,是真实的,可以登录系统,可以操作系统任何文件和命令,拥有最高权限;虚拟用户:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登录系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、mail等;这类用户都系统自身拥有的,而非后来添加的,当然我们也可以添加虚拟用户;普通真实用户:这类用户能登录系统,但只能操作自己家目录的内容;权限有限;这类用户都是系统管理员自行添加的; 4、多用户操作系统的安全; 多用户系统从事实来说对系统管理更为方便。从安全角度来说,多用户管理的系统更为安全,比如beinan用户下的某个文件不想让其它用户看到,只是设置一下文件的权限,只有beinan一个用户可读可写可编辑就行了,这样一来只有beinan一个用户可以对其私有文件进行操作,Linux 在多用户下表现最佳,Linux能很好的保护每个用户的安全,但我们也得学会Linux 才是,再安全的系统,如果没有安全意识的管理员或管理技术,这样的系统也不是安全的。 从服务器角度来说,多用户的下的系统安全性也是最为重要的,我们常用的Windows 操作系统,它在系纺权限管理的能力只能说是一般般,根本没有没有办法和Linux或Unix 类系统相比; 二、用户(user)和用户组(group)概念; 1、用户(user)的概念; 通过前面对Linux 多用户的理解,我们明白Linux 是真正意义上的多用户操作系统,所以我们能在Linux系统中建若干用户(user)。比如我们的同事想用我的计算机,但我不想让他用我的用户名登录,因为我的用户名下有不想让别人看到的资料和信息(也就是隐私内容)这时我就可以给他建一个新的用户名,让他用我所开的用户名去折腾,这从计算机安全角度来说是符合操作规则的; 当然用户(user)的概念理解还不仅仅于此,在Linux系统中还有一些用户是用来完成特定任务的,比如nobody和ftp 等,我们访问LinuxSir.Org 的网页程序,就是nobody用户;我们匿名访问ftp 时,会用到用户ftp或nobody ;如果您想了解Linux系统的一些帐号,请查看 /etc/passwd ; 2、用户组(group)的概念; 用户组(group)就是具有相同特征的用户(user)的集合体;比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的; 举例:我们为了让一些用户有权限查看某一文档,比如是一个时间表,而编写时间表的人要具有读写执行的权限,我们想让一些用户知道这个时间表的内容,而不让他们修改,所以我们可以把这些用户都划到一个组,然后来修改这个文件的权限,让用户组可读,这样用户组下面的每个用户都是可读的; 用户和用户组的对应关系是:一对一、多对一、一对多或多对多; 一对一:某个用户可以是某个组的唯一成员;多对一:多个用户可以是某个唯一的组的成员,不归属其它用户组;比如beinan和linuxsir两个用户只归属于beinan用户组;一对多:某个用户可以是多个用户组的成员;比如beinan可以是root组成员,也可以是linuxsir用户组成员,还可以是adm用户组成员;多对多:多个用户对应多个用户组,并且几个用户可以是归属相同的组;其实多对多的关系是前面三条的扩展;理解了上面的三条,这条也能理解; 三、用户(user)和用户组(group)相关的配置文件、命令或目录; 1、与用户(user)和用户组(group)相关的配置文件; 1)与用户(user)相关的配置文件; /etc/passwd注:用户(user)的配置文件;/etc/shadow注:用户(user)影子口令文件; 2)与用户组(group)相关的配置文件; /etc/group注:用户组(group)配置文件;/etc/gshadow注:用户组(group)的影子文件; 2、管理用户(user)和用户组(group)的相关工具或命令; 1)管理用户(user)的工具或命令; useradd 注:添加用户 adser 注:添加用户 passwd 注:为用户设置密码 usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等; pwcov 注:同步用户从/etc/passwd 到/etc/shadow pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整; pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件; finger 注:查看用户信息工具 id 注:查看用户的UID、GID及所归属的用户组 chfn 注:更改用户信息工具 su 注:用户切换工具 sudo 注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现; visudo 注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的; sudoedit 注:和sudo 功能差不多; 2)管理用户组(group)的工具或命令; groupadd 注:添加用户组; groupdel 注:删除用户组; groupmod 注:修改用户组信息 groups 注:显示用户所属的用户组 grpckgrpconv 注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建; grpunconv 注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;3、/etc/skel 目录; /etc/skel目录一般是存放用户启动文件的目录,这个目录是由root权限控制,当我们添加用户时,这个目录下的文件自动复制到新添加的用户的家目录下;/etc/skel 目录下的文件都是隐藏文件,也就是类似.file格式的;我们可通过修改、添加、删除/etc/skel目录下的文件,来为用户提供一个统一、标准的、默认的用户环境; [[email protected] beinan]# ls -la /etc/skel/ 总用量92 drwxr-xr-x 3 root root 4096 8月 11 23:32 . drwxr-xr-x 115 root root 12288 10月 14 13:44 .. -rw-r–r– 1 root root 24 5月 11 00:15 .bash_logout -rw-r–r– 1 root root 191 5月 11 00:15 .bash_profile-rw-r–r– 1 root root 124 5月 11 00:15 .bashrc -rw-r–r– 1 root root 5619 2005-03-08 .canna -rw-r–r– 1 root root 438 5月 18 15:23 .emacs -rw-r–r– 1 root root 120 5月 23 05:18 .gtkrcd rwxr-xr-x 3 root root 4096 8月 11 23:16 .kde -rw-r–r– 1 root root 658 2005-01-17 .zshrc/etc/skel目录下的文件,一般是我们用useradd 和adser 命令添加用户(user)时,系统自动复制到新添加用户(user)的家目录下;如果我们通过修改 /etc/passwd 来添加用户时,我们可以自己创建用户的家目录,然后把/etc/skel 下的文件复制到用户的家目录下,然后要用chown 来改变新用户家目录的属主; 4、/etc/login.defs 配置文件; /etc/login.defs文件是当创建用户时的一些规划,比如创建用户时,是否需要家目录,UID和GID的范围;用户的期限等等,这个文件是可以通过root来定义的; 比如Fedora 的 /etc/logins.defs 文件内容; # *REQUIRED*# Directory where mailboxes reside, _or_ name of file, relative to the# home directory. If you _do_ define both, MAIL_DIR takes precedence.# QMAIL_DIR is for Qmail##QMAIL_DIR MaildirMAIL_DIR /var/spool/mail 注:创建用户时,要在目录/var/spool/mail中创建一个用户mail文件;#MAIL_FILE .mail# Password aging controls:## PASS_MAX_DAYS Maximum number of days a password may be used.# PASS_MIN_DAYS Minimum number of days allowed between password changes.# PASS_MIN_LEN Minimum acceptable password length.# PASS_WARN_AGE Number of days warning given before a password expires.#PASS_MAX_DAYS 99999 注:用户的密码不过期最多的天数;PASS_MIN_DAYS 0 注:密码修改之间最小的天数;PASS_MIN_LEN 5 注:密码最小长度;PASS_WARN_AGE 7 注:## Min/max values for automatic uid selection in useradd#UID_MIN 500 注:最小UID为500 ,也就是说添加用户时,UID 是从500开始的;UID_MAX 60000 注:最大UID为60000;## Min/max values for automatic gid selection in groupadd#GID_MIN 500 注:GID 是从500开始;GID_MAX 60000## If defined, this command is run when removing a user.# It should remove any at/cron/print jobs etc. owned by# the user to be removed (passed as the first argument).##USERDEL_CMD /usr/sbin/userdel_local## If useradd should create home directories for users by default# On RH systems, we do. This option is ORed with the -m flag on# useradd command line.#CREATE_HOME yes 注:是否创用户家目录,要求创建;5、/etc/default/useradd 文件; 通过useradd 添加用户时的规则文件; # useradd defaults fileGROUP=100HOME=/home 注:把用户的家目录建在/home中;INACTIVE=-1 注:是否启用帐号过期停权,-1表示不启用;EXPIRE= 注:帐号终止日期,不设置表示不启用;SHELL=/bin/bash 注:所用SHELL的类型;SKEL=/etc/skel 注: 默认添加用户的目录默认文件存放位置;也就是说,当我们用adser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;后记: 关于用户(user)和用户组(group)管理内容大约就是这么多;只要把上面所说的内容了解和掌握,用户(user)和用户组(group)管理就差不多了;由于用户(user)和用户组(group)是和文件及目录权限联系在一起的,所以文件及目录权限的操作也会独立成文来给大家介绍; 摘自 http://fedora.linuxsir.org/main/?q=node/91
❽ 1-6-RHEL7系统用户及组管理
时间:2018-05-26 姓名:魏文应
什么是UID呢? UID就像人的身份证号一样,通过这个号,标识用户、程序。
用户信息文件:
我们可以打开 /etc/passwd 这个文件,账户信息存储格式如下:
我们打开 /etc/shadow 这个文件,密码信息存储格式如下:
用户组文件:
我们可以打开 /etc/group 这个文件,用户组文件信息存储格式如下:
往系统中新增一个用户,命令: useradd 用户名 。比如添加一个名为wwy的用户: useradd wwy 。 useradd 命令的相关参数:
保存退出,reboot 操作系统神握贺,发现启动速度会很慢。
切换用户以后,出游派现 [-bash-4.1$] ,而不是正常的 [[email protected] ~] : 这是因为删除了用户家目录皮裂下的bash相关配置文件导致的。如下图:
可以通过复制系统中的bash文件到宿主目录下: cp /etc/skel/.bash* /home/test 。
❾ Linux命令之用户组管理
Linux中每个用户都要属于一个或多个组,有了用户组,就可以将用户添加到组中,这样就方便管理员对用户的集中管理。 Linux系统中用户组分为root组、系统组、普通用户组三类。当一个用户属于多个组时,这些组中只能有一个作为该用户的主属组,其他组就被称为此用户的次属组。 组基本信息在文件/etc/group中;组密码信息在文件/etc/gshadow中。通过命令:cat /etc/group、cat /etc/gshadow可查看文件内容。 各用户组中,以 ":" 作为字段之间的分隔符,分为 4 个字段,每个字段对应的含义为: 组名:密码:GID:该用户组中的用户列表 而在gshadow文件中,每行代表一个组用户的密码信息,各行信息用 ":" 作为分隔符,分为 4 个字段,每个字段的含义如下: 组名:加密密码:组管理员:组附加用户列表 root用户可以直接修改/etc/group文件达到管理组的目的,也可以使用以下命令:groupadd、groupdel、groupmod -n、gpasswd -a、gpasswd -d、newgrp。 下面使用案例分别讲解这些命令: 添加用户组的命令是 groupadd,命令格式如下: groupadd [ -g gid [ -o ] ] [ -r ] [ -f ] group 参数说明: -g:指定新建工作组的 id; -r:创建系统工作组,系统工作组的组ID小于 500; -K:覆盖配置文件 "/ect/login.defs"; -o:允许添加组 ID 号不唯一的工作组。 -f,–force: 如果指定的组已经存在,此选项将失明了仅以成功状态退出。当与 -g 一起使用,并且指定的GID_MIN已经存在时,选择另一个唯一的GID(即-g关闭)。 示例:创建一个新的组,并添加组 ID。 [[email protected] ~]# groupadd -g 888 newgroup 此时在/etc/group文件中产生了一个id为888的项目: 删除用户组时,可用groupdel(group delete)指令来完成。倘若该组中仍包括某些用户,则必须先删除这些用户后,方能删除组。 注意:删除的组不能为主属组! 命令格式: groupdel [组名] 示例:删除用户组 newgroup [[email protected] ~]# groupdel newgroup 此时再查看/etc/group文件时可以看到用户组newgroup已经不存在,删除成功! 要更改用户组识别码或名称可使用 groupmod 来完成。命令格式: groupmod [ -g <群组识别码> < -o > ] [ -n <新群组名称 > ] [原群组名称] 参数说明 : -g <群组识别码> 设置欲使用的群组识别码。 -o 重复使用群组识别码。 -n <新群组名称> 设置欲使用的群组名称。 示例:创建用户组newgroup并修改其名称为modifiedgroup [[email protected] ~]# groupadd newgroup[[email protected] ~]# groupmod -n modifiedgroup newgroup 查看/etc/group文件,只存在名称为modifiedgroup的用户组,修改成功! gpasswd 是 Linux 下工作组文件 /etc/group 和 /etc/gshadow 管理工具,用于将一个用户添加到组或者从组中删除。命令格式: gpasswd [可选项] 组名 可选项参数 : -a:添加用户到组; -d:从组删除用户; -A:指定管理员; -M:指定组成员和-A的用途差不多; -r:删除密码; -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。 示例1:将用户yangwei添加到组modifiedgroup中 [[email protected] ~]# gpasswd -a yangwei modifiedgroup 此时查看/etc/group文件发现组 modifiedgroup中出现用户yangwei 示例2:将用户yangwei从组modifiedgroup中给删除 [[email protected] ~]# gpasswd -d yangwei modifiedgroup 再次查看/etc/group文件发现用户yangwei已经不存在。 当需要在不同的群组下工作的时候我们需要进行切换群组操作,这个操作由newgrp指令来完成。命令格式如下: newgrp [群组名称] 注意!当前用户必须都是两个群组的成员,否则切换群组时需要输入切换组的组密码,这时候当前用户作为临时成员在切换组下工作,所创建的文件全都属于切换组。 示例1:用户yangwei不属于群组modifiedgroup,请将当前工作组切换为modifiedgroup。 示例2:将用户yangwei添加到组modifiedgroup中,并切换工作组为modifiedgroup。 总结:Linux用户组管理需要掌握最基本的几个命令及其选项参数: groupadd 、groupdel 、groupmod 、gpasswd 、newgrp !
❿ Linux用户组管理
在创建用户时不会创建附属组,附属组只能通过命令创建 使用命令groupadd创建一个附属组谨简,也可以在命令中添加参数 -g 指定组id,组id设置的时候应该大于1000,不能重复,重复有可能导致系统无法启动 groupadd这个命令并不能将用户添加进用户组中去,我们如何把用户添加进用户组中呢?使用命令gpasswd加参数-a向一个用户组中添加用户,如果不加-a的话默认是修改或者设置组密码,使用到组密码的场景很少,至少我没有碰见过。 使用命令gpasswd和参数-d把一个用户从一个蠢晌迹用户组中移除 删除组可以使用groupdel删除组用户有自己的配置文件,组也有自己的配置文件,组的配置文件主要保存了组名称,组密码、组ID和组成员,这个配置文件统一保存带并在/etc/group文件中并以: 作为分隔符