linux用户和组的管理(Linux用户组管理)
本文目录
Linux用户组管理
在创建用户时不会创建附属组,附属组只能通过命令创建 使用命令groupadd创建一个附属组,也可以在命令中添加参数 -g 指定组id,组id设置的时候应该大于1000,不能重复,重复有可能导致系统无法启动 groupadd这个命令并不能将用户添加进用户组中去,我们如何把用户添加进用户组中呢?使用命令gpasswd加参数-a向一个用户组中添加用户,如果不加-a的话默认是修改或者设置组密码,使用到组密码的场景很少,至少我没有碰见过。 使用命令gpasswd和参数-d把一个用户从一个用户组中移除 删除组可以使用groupdel删除组用户有自己的配置文件,组也有自己的配置文件,组的配置文件主要保存了组名称,组密码、组ID和组成员,这个配置文件统一保存在/etc/group文件中并以: 作为分隔符
linux组和用户组的区别
1、root用户root用户时UID和GID都等于0的用户,是Linux系统中的“上帝”,拥有最大的权限。如果深入了解Linux系统,会发现root用户真的拥有很多特权,比如:无视Linux对权限的设置而强行读、写、执行文件,切换其他用户登录不需要密码,可以强行切换到已经所用的用户,只有root可以为普通用户修改密码等等。2、系统用户系统用户通常用于运行服务,但是此用户无家目录,也不能用于登录系统。例如,在yum安装apache、nginx等服务后,就会自动创建apache和nginx的用户和同名用户组。在CentOS6系统中,系统用户的UID范围是1-499,在CentOS7系统中,系统用户的ID是1-999。3、普通用户普通用户只能由root用户创建,该用户拥有家目录,并且可以登录,该用户的权限由root分配。普通用户拥有指定的shell环境。(二)用户和用户组关系在Linux系统中,每个用户必定属于一个主组,默认情况下属于与其同名的用户组,最多可以有31个附属组,从用户权限的角度看,主组和附属组其实差别不大,用户也会拥有其附属组的组相关权限。(三)用户和用户组配置文件Linux系统下用户和用户组相关的配置文件主要有以下个:1、/etc/passwd该配置文件内保存有所有的用户信息,如下所示:在本配置文件中以冒号分割了用户的信息,从左到右依次是:用户名:登录密码(以X代替):UID:GID:家目录:shell环境在本文件中,凡是shell环境是/sbin/nologin的为不可登录系统用户2、/etc/shadow该配置文件保存了用户的密码信息,如下所示:在该文件中,也是以冒号区分各个信息,可以看出,其中只有pzz和root用户拥有密码。※3、/etc/group该文件保存了用户组的信息,但是该文件不是很常用,有兴趣的同学可以自行查阅。※4、/etc/gshadow该文件保存了用户组的密码(其实用户组也没有密码)信息,但是该文件更不是很常用,有兴趣的同学可以自行查阅。5、/etc/login.defs该文件可以设置密码过期时间,密码最大长度限制等内容。二、Linux用户和用户组管理相关命令我们通常通过以下命令对Linux的用户和用户组进行管理。(一)useradd添加用户useradd命令一般用于添加用户,该命令常见参数如下:-M 表示不创建家目录-s 表示指定用户的shell环境-u 表示指定用户的uid-g 表示指定用户的gid(需要指定的gid存在)-p 指定用户的密码(必须以密文的方式指定)-G 表示指定用户的附属组(需要指定的gid存在)useradd命令使用示例:useradd Linuxuseradd apache -M -s /sbin/nologin登录后复制上面第一条命令表示创建Linux的普通用户,第二条命令表示创建apache的系统用户。(二)userdel删除用户userdel命令可以删除用户,后面直接跟用户名可以直接删除该用户。但是,我们一般在删除用户时都会添加-r参数,表示连同该用户的家目录一起删除。userdel命令执行示例如下:userdel -r linux登录后复制在不删除家目录的情况下,删除该用户后如果想要再创建同名用户时则会失败,如下所示:并且删除家目录也会被拒绝,如下所示:删除用户还需要注意一个问题,就是删除该用户后,该用户创建的文件的属主和属组就会变成UID和GID显示,如下所示:(三)usermod修改用户usermod命令常用于修改用户的信息,常用参数如下:-d 表示重新指定用户的家目录-g 表示重新指定用户的(主)组-G 表示给用户添加附属组-L 表示锁定用户,被锁定的用户无法登录-U 表示解除对用户的锁定注意:如果在锁定用户后使用passwd命令修改该锁定用户的口令,则该用户会被自动解锁。usermod命令给用户增加附属组如下所示:注意,在上述操作中,必须首先存在一个GID为1001的组。(四)其他常用命令1、su命令su命令用于切换用户和重新登录,直接执行命令su可以重新登录,在Linux系统中,一些配置文件生效需要执行该命令。用户的重登录过程非常快,执行后立马可以完成。使用su命令切换用户,可以有两种方式:su newusersu - newuser登录后复制这两条命令都可以切换新用户,但是区别在于采用上一条命令切换后当前目录不会发生改变,下一条命令切换后当前目录会切换成该用户的家目录。2、id命令id命令可以显示用户的信息,包括UID、GID等信息,id命令后面如果不加其他的命令参数表示查看的是当前登录用户的信息,如果加上其他用户的用户名则查询的是该用户的用户信息。3、passwd命令passwd命令用于修改用户的口令。每个用户都可以执行passwd命令修改自己的口令,root用户可以执行命
Linux系统-文件系统&用户组管理-问题解答
1)ls ls -l /home/ #显示home目录下文件或文件夹的包括访问权限、所属用户、所属主组、文件大小等信息, ls -l 也是别名ll的命令与选项部分。 ls -a /root #显示root目录下包括隐藏文件在内的所有文件 ls -d /etc/* #显示etc目录下所有子目录(不包括文件) ls -S /root #按文件从大到小排列显示root目录下各文件 ls -Sr /root #按文件从小到大排列显示root目录下各文件 ls -U /root #按文件创建时间从新到旧排列显示root目录下各文件 ls -X /root #按文件后缀排序显示root目录下各文件 ls -R /root #递归显示root目录下所有文件 ls -t /root #按修改数据内容的时间(mtime)从新到旧排列显示root目录下各文件 2)touch touch /data/file1 #在data目录下创建file1文件,如果目录下已经有同名文件,则不会覆盖同名文件 touch -t 201910200830.50 /etc/hosts #修改/etc/hosts文件的atime以及mtime的时间戳为2019年10月20日8点30分50秒 touch -c /data/f2 #刷新data目录下f2文件的atime、mtime、ctime,如果f2文件不存在,则不会创建f2 3)cp cp etc/hosts /home/ #复制/etc/hosts文件到 /home目录下,如果home目录下没有hosts文件,则自动创建同名文件;如果有,则会直接覆盖。 cp -i etc/hosts /home/ #复制/etc/hosts文件到 /home目录下,如果home目录下没有hosts文件,则自动创建同名文件;如果有,则会询问用户是否覆盖。 cp -r /etc/ntp /root #复制/etc/ntp目录下所有子目录以及文件到root目录下 cp -a /home/* /data/ #复制/home/目录下所有子目录以及文件到data目录下,所有文件的类型、软链接、文件所属关系、时间戳等信息都一并复制(但是home目录下的隐藏文件不会被复制到data目录下) cp -av /home/* /data/ #在实现cp -a /home/* /data/ 复制的基础上,在终端上显示复制过程 cp -u /etc/* /data/ #将etc目录下的文件复制到data目录下,如果etc目录的文件比data目录下的同名文件新,则覆盖data目录下的同名文件,如果etc目录下的文件比data目录里的与之同名文件旧,则不覆盖。 cp --backup=numbered etc/hosts /home/hosts #将etc目录下hosts文件复制到home目录下的hosts,在复制之前,会先对home目录的hosts文件进行备份,避免被覆盖后,原文件内容丢失。 4)mv mv /etc/hosts /data/ #将etc目录下hosts文件转移到data目录下,如果data目录有同名文件,则直接覆盖 mv -i /etc/hosts /data/ #将etc目录下hosts文件转移到data目录下,如果data目录有同名文件,则询问是否覆盖 mv f1 f2 #将当前目录下的f1文件修改名字为f2 mv -t /data/ /etc/hosts #将etc目录下hosts文件转移到data目录下,如果data目录有同名文件,则直接覆盖 。功能实现上与mv /etc/hosts /data/ 相同,但是移出路径参数与移入路径参数的位置发生了互换 mv downloads/ D #将当前目录下的downloads目录的名字改成D 5)rm rm /data/f1 #删除data目录下的f1文件 rm -r /data/* #递归删除data目录下的所有文件 rm -rf /data/* #强制递归删除data目录下的所有文件 6)file file /etc/hosts #查看etc目录下hosts文件的文件类型,如文本文件、压缩文件、可执行程序等 7)stat stat /data/f1 #查看/data/f1文件的三个时间,内容数据修改时间mtime,读取时间atime,元数据修改时间ctime 8)pwd #在当前目录下输入pwd回车,查看当前所在目录路径 pwd -P #显示当前目录或文件夹的真实路径 9)cd cd /data #进入data目录 cd ~root #进入root的家目录 cd - #回到刚才离开的目录 10)mkdir mkdir /data/dir #在data目录下创建dir目录 mkdir -p /data/dir1/dir2/dir3/dir4 #在data目录下创建子目录dir1/dir2/dir3/dir4,若dir1、dir2、dir3都不存在,则递归创建 11)rmdir rmdir /data/dir #删除data目录下的dir目录,如果dir里面有文件,则dir不能被删除 rmdir -p /data/dir1/dir2/dir3/dir4 #若dir1、dir2、dir3、dir4都是空目录,则递归删除data目录下的dir1、dir2、dir3、dir4目录 12)ln ln /data/f1 /data/f2 #在data目录下创建文件f1的硬链接f2 ln -s f1 f1.link #在当前目录下创建文件f1的软链接f1.link #当软链接路径与原文件路径不同时,如软链接位置是:/root/f1.link ,而原文件路径是:/data/f1 。 则在创建软链接时需要相对于软链接的路径,对原文件路径补完相对路径,具体如下: ln -s ../data/f1 /root/f1.link 答: 1)创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b mkdir /tmp/a{1,2} touch /tmp/a1/{a,b} 2)在/tmp目录下创建目录:x_y, x_z, q_y, q_z mkdir /tmp/{x,q}_{y,z}答:文件的元数据信息包括: 文件类型: 指文件所属的类型,包括目录、文本文件、压缩文件、可执行程序等。系统实际上查看文件的头部信息,magic number。 节点编号: 每个文件、文件夹在同一个磁盘分区内,都有一个唯一的节点编号inode,用于识别磁盘分区内的文件。节点编号的数量在一个磁盘分区内是有限的,如果节点编号耗尽,无论磁盘空间是否真的占满,都会显示磁盘空间已满。 硬链接数: 是指指向该文件节点编号inode的文件名称数量。 所属用户UID: 创建该文件的用户的uid 所属主组GID: 创建该文件的用户的主组gid 文件大小: 表示该文件的磁盘空间占用大小 mtime时间戳: 指文件的内容数据发生修改时的时间点 atime时间戳: 指文件被访问时的时间点 ctime时间戳: 指文件的元数据发生变化时的时间点 访问权限: 指不同用户对文件的访问、修改、执行等操作的权限 指向磁盘数据块的直接指针: 直接指向磁盘数据块的指针,一个文件最多有12个直接指针,每个直接指针指向一个4k大小的数据块 指向磁盘数据块的间接指针: 间接指向磁盘数据块的指针,一个间接指针会先指向一个4k大小数据块作为次阶指针表,该数据块又分成1024个4字节大小的区间,一个区间存储一个次阶的指针,次阶指针指向一个4k的磁盘数据块存储真正的文件数据,若依然不能满足空间要求,则可继续嵌套次阶指针表,直到满足文件存储要求为止。查看元数据信息方式: 1)ls -l /data #可查看data目录下非隐藏文件的访问权限、所属用户UID、所属用户主组GID、mtime时间戳、文件大小、硬链接数。 2)stat /root/bin #可查看root目录下bin目录的atime时间戳、mtime时间戳、ctime时间戳 3)ls -lc /root/ #查看root目录下非隐藏文件的ctime时间戳 4)ls -lu /root/ #查看root目录下非隐藏文件的atime时间戳 5)ls -i /root #查看root目录下所有非隐藏文件的节点编号 6)file /root/.bashrc #查看root目录下.bashrc文件的文件类型修改文件的时间戳信息: touch -t 201910200830.50 /etc/hosts #将etc目录下hosts文件的atime和mtime时间戳修改成2019年10月2日8时30分50秒 touch -a /etc/hosts #更新etc目录下hosts文件的atime和ctime为当前时间 touch -m /etc/hosts #更新etc目录下hosts文件的mtime和ctime为当前时间答: touch /tmp/tfile-`date +"%F-%H-%M-%S"`答: mkdir /tmp/mytest1 #先创建mytest1目录 cp -a /etc/p* /tmp/mytest1/ 或: cp -a /etc/p* /tmp/mytest1/ 答: useradd -u 5001 -md /tmp/tom -s /bin/zsh -G jack tom 1)useradd useradd jack #创建用户jack,用户策略采用系统默认配置 useradd -u 1008 jack #创建用户jack,指定用户的UID为1008 useradd -d /data/jack jack #创建用户jack,指定用户家目录路径为/data/jack useradd -g 1111 jack #创建用户jack,指定用户主组是GID=1111的组,但GID=1111的组需要事先存在,否则无法创建 useradd -G tom jack #创建用户jack,指定用户jack加入附加组tom,但tom组需要事先存在,否则无法创建 useradd -s /bin/zsh jack #创建用户jack,制定用户jack的shell类型是zsh useradd -r jack #创建系统用户jack,系统用户默认不创建家目录 useradd -r -md /data/jack jack #配合-d选项,创建系统用户jack,指定该系统用户创建家目录/data/jack,并在家目录中载入默认配置文件 useradd -N jack #创建用户jack,不创建jack同名主组,将jack主组默认为users useradd -M jack #创建用户jack,强制用户jack不创建家目录2)usermod usermod -G wang jack #将jack用户的附加组更改为wang,原有附加组删除 usermod -aG wang jack #在不退出原有附加组情况下,jack用户增加附加组wang usermod -l jacky jack #修改用户名称为jacky usermod -e 20181212 jack #将用户jack的账号过期日期修改为2018年12月12日 usermod -s /bin/csh jack #修改用户jack的shell类型为csh,与命令: chsh -s /bin/csh jack 相等 usermod -c ’abcdefg’ jack #用户jack的注释为abcdefg3)userdel userdel jack #删除用户jack userdel -r jack #删除用户jack,包括用户的家目录、邮箱4)groupadd groupadd -g 1010 leo #创建组leo,指定GID为1010 groupadd -r leo #创建系统组leo5)groupmod groupmod -n lee leo #修改组leo名字为lee groupmod -g 1111 leo #修改组leo的GID为11116)groupdel groupdel wang #删除wang组,但是wang组必须不是任何用户的主组,否则不可以删除7)su su jack #当前用户非登录切换到jack账号,不读取jack账号配置文件 su - jack #当前用户登录切换到jack账号,读取jack账号配置文件8)groupmems groupmems -l -g root #查看所有属于root组的用户9)id id #查看当前用户的UID名称 、 主组名称GID 、 附属组名称GID id root #查看root用户的UID名称、 主组名称GID 、附属组名称GID id -u root #查看root用户的UID名称 id -g root #查看root用户的主组名称GID id -G root #查看root用户的主组名称GID 、 附属组名称GID id -nG root #只查看root用户的主组名称 、 附属组名称10)chfn chfn jack #修改用户jack的注释 ,与命令:usermod -c ’abcdefg’ jack 类似11)chsh chsh -s /bin/csh jack #修改用户jack的shell类型为csh12)chage chage jack # 交互式修改用户jack的密码策略,包括修改:密码创建时间、最小密码修改期、密码有效期、过期通知、过期宽限期、账户有效时间 chage -l jack #查看用户jack的密码策略 chage -d 0 jack #让用户jack密码期限立即过期,重新登录需要更换密码13)passwd passwd #修改当前用户的账号密码 passwd jack #修改jack账号密码 (仅限root账号) passwd -e jack #强制jack用户下次登录修改密码 (仅限root账号) echo hello | passwd --stdin jack #利用管道标准输入,快速将jack用户密码修改成hello,无需输入两次新密码,不检验密码的复杂度 14)newgrp newgrp root #将当前用户的主组切换成root,原主组切换成附属组,如果当前用户的附属组没有root组,切换时需要输入root组密码;如果当前用户的附属组包含root组,则无需输入组密码,直接切换15)gpasswd gpasswd jack #创建jack组密码 gpasswd -a wang jack #将wang用户添加至jack组里16)groups groups jack #查看用户jack所属的组列表
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)的概念;用户和用户组的对应关系是:一对一、多对一、一对多或多对多;一对一:某个用户可以是某个组的唯一成员;多对一:多个用户可以是某个唯一的组的成员,不归属其它用户组;比如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)的相关工具或命令;
如何在linux上用命令实现用户和组的管理
linux上用户和组的管理一般使用user和group相关命令管理用户管理:1、添加新的用户账号使用useradd命令,其语法如下:useradd选项用户名其中各选项含义如下:-ccomment指定一段注释性描述。-d目录指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。-g用户组指定用户所属的用户组。-G用户组,用户组指定用户所属的附加组。-sShell文件指定用户的登录Shell。-u用户号指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。用户名指定新账号的登录名。2、删除用户使用userdel命令,其格式如下:如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。删除一个已有的用户账号使用userdel命令,其格式如下:userdel选项用户名常用的选项是-r,它的作用是把用户的主目录一起删除。3、修改用户使用usermod命令,其格式如下:修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。修改已有用户的信息使用usermod命令,其格式如下:usermod选项用户名常用的选项包括-c,-d,-m,-g,-G,-s,-u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。用户组的管理1、增加一个新的用户组使用groupadd命令,其格式如下:groupadd选项用户组可以使用的选项有:-gGID指定新用户组的组标识号(GID)。-o一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。2、删除一个已有的用户组使用groupdel命令,其格式如下:groupdel用户组3、修改用户组的属性使用groupmod命令。其语法如下:groupmod选项用户组常用的选项有:-gGID为用户组指定新的组标识号。-o与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。-n新用户组将用户组的名字改为新名字
更多文章:
联想笔记本电脑y460(联想笔记本电脑y460无线开关在哪里)
2024年7月12日 23:19
联想ideapadyoga(联想ideapadyoga11s)
2024年7月19日 02:34
惠普elitebook6930p(惠普elitebook6930P)
2024年7月12日 14:31