LINUX用户和用户组操作命令
IdFingerPwck???????? 检查/etc/passwd配置文件内的信息与实际主文件夹是否存在,还可比较/etc/passwd和/etc/shadow的信息是否一致,另外如果/etc/passwd中的数据字段错误也会提示。 Grpck???????? 和pwck功能相近,这是检查用户组的。 Groupsnewgrpuseraddusermodusermod 不仅能改用户的SHELL类型,所归属的用户组,也能改用户密码的有效期,还能改登录名。usermod 如此看来就是能做到用户帐号大转移;比如我把用户A改为新用户B; usermod? [-u uid [-o]] [-g group] [-G group,...] ??????????????? [-d 主目录 [-m]] [-s shell] [-c 注释] [-l 新名称] ??????????????? [-f 失效日] [-e 过期日] [-p 密码] [-L|-U] 用户名 usermod 命令会参照你命令列上指定的部份修改系统帐号档。下列为usermod可选用的参数。 -c comment ?????? 更新用户帐号password档中的注解栏,一般是使用chfn(1)来修改。 -d home_dir ?? 更新用户新的登入目录。如果给定-m选项,用户旧目录会搬到新的目录去,如旧目录不存在则建个新的。 -e expire_date 加上用户帐号停止日期。日期格式为MM/DD/YY. -f inactive_days 帐号过期几日后永久停权。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能。预设值为-1。 -g initial_group 更新用户新的起始登入用户组。用户组名须已存在。用户组ID必须参照既有的的用户组。用户组ID预设值为1。 -G group,[...] 定义用户为一堆groups的成员。每个用户组使用","区格开来,不可以夹杂空白字元。用户组名同-g选项的限制。如果用户现在的用户组不再此列,则将用户由该用户组中移除。 -l login_name? 变更用户login时的名称为login_name。其它不变。特别是,用户目录名应该也会跟着更动成新的登入名。 -s shell? 指定新登入shell。如此栏留白,系统将选用系统预设shell。 -u uid用户ID值。必须为唯一的ID值,除非用-o选项。数字不可为负值。预设为最小不得小于/etc/login.defs中定义的UID_MIN值。0到UID_MIN值之间是传统上保留给系统帐号使用。用户目录树下所有的档案目录其userID会自动改变。放在用户目录外的档案则要自行手动更动。 警告:usermod不允许你改变正在线上的用户帐号名称。当usermod用来改变userID,必须确认这名user没在电脑上执行任何程序。你需手动更改用户的crontab档。也需手动更改用户的at工作档。采用NISserver须在server上更动相关的NIS设定。 举个简单的例子,我们在前面说了关于useradd的工具,而usermod 工具和useradd的参数差不多;两者不同之处在于useradd是添加,usermod 是修改; [[email?protected] ~]# usermod -d /opt/linuxfish -m?? -l fishlinux -U linuxfish 注:把linuxfish 用户名改为fishlinux ,并且把其家目录转移到 /opt/linuxfish ; [[email?protected] ~]# ls -la /opt/linuxfish/?? 注:查看用户fishlinux的家目录下的文件及属主; 总用量 48 drwxr-xr-x?? 3 fishlinux linuxfish 4096 11月? 5 16:46 . drwxrwxrwx? 29 root????? root????? 4096 11月? 5 16:48 .. -rw-r--r--?? 1 fishlinux linuxfish?? 24 11月? 5 16:46 .bash_logout -rw-r--r--?? 1 fishlinux linuxfish? 191 11月? 5 16:46 .bash_profile -rw-r--r--?? 1 fishlinux linuxfish? 124 11月? 5 16:46 .bashrc -rw-r--r--?? 1 fishlinux linuxfish 5619 11月? 5 16:46 .canna -rw-r--r--?? 1 fishlinux linuxfish? 438 11月? 5 16:46 .emacs -rw-r--r--?? 1 fishlinux linuxfish? 120 11月? 5 16:46 .gtkrc drwxr-xr-x?? 3 fishlinux linuxfish 4096 11月? 5 16:46 .kde -rw-r--r--?? 1 fishlinux linuxfish??? 0 11月? 5 16:46 mydoc.txt -rw-r--r--?? 1 fishlinux linuxfish? 658 11月? 5 16:46 .zshrc [[email?protected] ~]# more? /etc/passwd |grep fishlinux? 注:查看有关fishlinux的记录; fishlinux:x:512:512::/opt/linuxfish:/bin/bash 通过上面的例子,我们发现文件的用户组还没有变,如果您想改变为fishlinux用户组,如果想用通过 usermod来修改,就要先添加fishlinux用户组;然后用usermod -g 来修改 ,也可以用chown -R fishlinux:fishlinux /opt/finshlinux 来改; 警告: usermod 最好不要用它来改用户的密码,因为他在/etc/shadow中显示的是明口令;修改用户的口令最好用passwd ; [[email?protected] ~]# usermod -p 123456 fishlinux? 注:修改fishlinux的口令是123456 ; [[email?protected] ~]# more /etc/shadow |grep fishlinux? 注:查询/etc/shadow文件中fishlinux的口令;我们看到明显是没有加密; fishlinux:123456:13092:0:99999:7::: userdeluserdel很简单,只有一个参数可选 -r ;如果加参数-r ,表示在删除用户的同时,一并把用户的家目录及本地邮件存储的目录或文件也一同删除;比如我们现在有两个用户bnnb和lanhaitun,其家目录都位于/home目录中,现在我们来删除这两个用户; [[email?protected] ~]# userdel bnnb? 注:删除用户bnnb,但不删除其家目录及文件; [[email?protected] ~]# ls -ld /home/bnnb? 注:查看其家目录是否存在; drwxr-xr-x? 14 501 501 4096? 8月 29 16:33 /home/bnnb??? 注:存在; [[email?protected] ~]# ls -ld /home/lanhaitun?? 注:查看lanhaitun家目录是否存在; drwx------? 4 lanhaitun lanhaitun 4096 11月? 5 14:50 /home/lanhaitun?? 注:存在; [[email?protected] ~]# userdel -r? lanhaitun? 注:删除用户lanhaitun,其家目录及文件一并删除; [[email?protected] ~]# ls -ld /home/lanhaitun? 注:查看是否在删除lanhaitun 用户的同时,也一并把其家目录和文件一同删除; ls: /home/lanhaitun: 没有那个文件或目录? 注:已经删除; 警告: 请不要轻易用-r参数;他会删除用户的同时删除用户所有的文件和目录,切记;如果用户目录下有重要的文件,在删除前请备份; 其实也有最简单的办法,但这种办法有点不安全,也就是直接在/etc/passwd中删除您想要删除用户的记录;但最好不要这样做,/etc/passwd 是极为重要的文件,可能您一不小心会操作失误; Groupaddgroupmodgroupdel 是用来删除用户组的;语法格式:groupdel 用户组 比如: [[email?protected] ~]# groupdel lanhaitun (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |