`
hanqunfeng
  • 浏览: 1541965 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

程序员必知必会----linux常用命令之三【用户管理】

 
阅读更多

 

一.配置文件说明

1./etc/passwd :用户信息文件

格式:用户名:密码位:UID:GID:注释:宿主目录:shell

 

UID说明:

root:UID=0

伪用户:UID 1-499,比如ftp,sshd,mail,shutdown等等

普通用户:UID 500-60000,新增用户

 

 

2./etc/shadow :密码文件

格式:用户名:密码:最后一次修改密码的天数:两次修改密码的最小天数间隔:密码保持有效的最多天数:密码失效前提前警告的天数:账号闲置时间:密码已经失效的天数:标志(一般不用)

 

3./etc/group  :用户组文件

格式:组名:组密码位:GID:组内用户列表

 

4./etc/gshadow:组密码文件

5./etc/skel/*:新用户环境变量文件

6./etc/login.defs:使用useradd默认创建用户时的缺省配置,比如UID范围,GID范围,密码有效期,密码长度限制,等等

7./etc/default/useradd:使用useradd默认创建用户时的缺省配置,比如宿主目录位置,默认shell,默认使用的新用户环境变量文件位置(/etc/skel),等等

 

二.添加、删除用户

1.使用命令创建

useradd 用户名 

-u:指定UID

-g:指定所属用户组GID或组名称

-G:指定所属多个组名称,逗号分隔

-d:宿主目录,会自动创建,如果目录已经存在,则不会将环境变量文件拷贝到该目录,需要手工拷贝

-s:命令解释器shell

-c:描述信息

-e:指定失效时间

例子:

useradd utest -u 600 -g 0 -G sys,adm -d /home/utest -s /bin/bash -c "this is a testuser"

 

passwd 用户名:设置密码

 

2.编辑配置文件创建

1)分别在/etc/passwd、/etc/group和/etc/shadow中增加一行记录

密码设置:echo 123456 | sha512sum 

2)创建宿主目录

3)拷贝默认的配置文件到宿主目录: cp -rf /etc/skel/* dir

4)设置用户初始密码

 

3.删除用户

userdel -r 用户名

-r:删除用户宿主目录

 

4.修改用户

usermod -G 组名称 用户名:将用户添加到组中

usermod -l 新用户名 -d dir -g 组名称 用户名:将用户的登录名改为新用户名,并且加入到组中,同时修改宿主目录

 

三.添加、删除组

1.创建组

groupadd 组名

-g:指定GID

 

2.删除组

groupdel 组名

 

3.修改组名称

groupmod -n newname oldname

 

4.设置组密码

设置密码:gpasswd 组名

将用户加入组:gpasswd -a 用户名 组名

从组中删除用户:gpasswd -d 用户名 组名

删除组密码:gpasswd -r 组名

禁止用户添加到该组:gpasswd -R 组名

设置组管理员:gpasswd -A 用户名 组名

 

 

四.SetUID与SetGID

ll /usr/bin/passwd 

-rwsr-xr-x. 1 root root 30768 Feb 22  2012 /usr/bin/passwd

说明:

当一个可执行程序具有SetUID权限,用户执行这个程序时将以这个程序所有者身份执行。

当一个可执行程序具有SetGID权限,用户执行这个程序时将以这个程序所属组身份执行。(这个用的不多)

 

 

SetUID设置:chmod 4755 程序 或者 chmod u+s 程序

SetUID取消:chmod 755 程序  或者 chmod u-s 程序

 

SetGID设置:chmod 2755 程序 或者 chmod g+s 程序

SetGID取消:chmod 755 程序  或者 chmod g-s 程序

 

查找SetUID和SetGID程序:

find / -perm -4000 -o -perm -2000

 

五.用户管理命令

1.id:查看当前用的UID,GID和组信息

uid=600(utest) gid=0(root) groups=0(root),3(sys),4(adm)

 

2.su - 用户名:切换用户,带环境变量,exit退出

 

3.finger :查看用户详细信息 安装:yum install finger -y

 

4.passwd -S 用户名:查看用户密码状态

 

5.vipw:编辑/etc/passwd文件

 

6.groups 用户名:查看用户隶属于哪些组

 

7.chgrp 组名 file/dir :修改文件所属组 目录加 -R

 

8.chown 用户名 file/dir :修改文件所属用户 目录加 -R

chown -R 用户名.组名 file/dir

9.vigr:编辑/etc/group文件

 

10.newgrp 组名:将当前用户加入到该组中,要求该组已经设置过密码

 

11.pwck:检查/etc/passwd内容是否有效,比如宿主目录是否存在等等

 

12.grpck:检查/etc/group内容是否有效

 

13.chage -l 用户名:查看用户密码配置信息

 

六.用户禁用与恢复

禁用:锁定用户,不能登录

usermod -L 用户名

passwd -l 用户名

 

恢复:解锁

usermod -U 用户名

passwd -u 用户名

 

七.sudo

配置文件/etc/sudoers

格式:用户名(%组名) 主机地址=命令(绝对路径)

例子:root    ALL=(ALL)       ALL

 wap     ALL=/usr/local/bin/redis-server

visudo:编辑/etc/sudoers

sudo command:执行命令,需要输入当前用户密码

sudo -l:查看当前用户可以使用sudo执行哪些命令

 

八.粘着位

如果一个权限为777的目录被设置了粘着位,则每个用户都可以在该目录下创建文件,但只能删除自己创建的文件

 

设置:chmod o+t 目录 或者 chmod 1777 目录

取消: chmod o-t 目录 或者 chmod 777 目录

 

九.批量添加用户,适用于少量添加,大量可以编写个脚步

1.编辑一个用户信息文件,比如user.info,格式与/etc/passwd相同

2.newusers < user.info :写入/etc/passwd,会自动创建宿主目录

3.pwunconv:关闭shadow passwd功能

4.创建一个密码文件,比如passwd.info,格式与/etc/shadow相同,但密码是明文

5.chpasswd < passwd.info:写入/etc/shadow

6.pwconv :开启shadow passwd功能,写入password密文

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    程序员必会的Linux命令

    ### 程序员必会的 Linux 命令 #### 一、查找文件 - **Find**: `find` 命令用于在文件系统中查找文件或目录。 - **基本格式**:`find [搜索起点] [选项]` - **示例**: - `find / -name filename.txt`:在根目录...

    程序员必知必会linux基础知识

    用户必知必会的Linux常用命令之【基础命令】包括了对文件和目录的创建、删除、移动、复制等操作的命令。这些是进行Linux系统日常维护和操作时,使用频率最高的命令。 【vim】作为程序员的编辑器,是Linux系统中必不...

    超强版linux程序员手册

    2. **Linux命令行工具**:书中详细列举并解释了数百个常用的Linux命令,包括文件和目录管理、文本处理、系统监控、网络通信等,这些都是日常开发和系统维护中的必备技能。 3. **C/C++编程**:作为Linux系统编程的...

    Linux常用命令全集

    在IT领域,Linux操作系统是开发者、系统管理员和程序员的重要工具。了解并熟练使用Linux命令行是成为高效Linux用户的关键。本篇文章将详细讲解Linux入门...希望这份Linux常用命令全集能为你的学习之路提供宝贵的指引。

    linux常用命令大全eb-mas开发笔记

    本篇将详细介绍Linux常用命令及其应用,帮助你提升工作效率。 1. **ls** 命令:用于列出目录中的文件和子目录。通过添加选项如 `-l`(长格式)可显示详细信息,`-a`(显示所有文件,包括隐藏文件)可以查看通常不...

    迅雷java高级程序员-面试归来-2010-05-21

    - 虽然题目只提到“写6个Linux命令”,但实际上面试官可能会更关注应聘者对Linux环境的理解以及常用命令的应用能力。 4. **SQL相关** - SQL是数据库操作的基础,熟练掌握SQL对于任何一名Java程序员来说都是必不可...

    Linux常用命令Linux常用命令

    这篇内容将深入讲解一些常用的Linux命令,帮助初学者更好地理解和操作Linux系统。 1. **ls**:用于列出目录中的文件和子目录。例如,`ls -l`可以显示详细信息,包括权限、所有者、大小和修改日期。 2. **cd**:...

    面试系统linux 常用的20种必会的命令.docx

    ### Linux常用命令详解 #### 1. `cd` - 切换工作目录 用于改变当前的工作目录。例如: ``` cd /home/user ``` #### 2. `ls` - 显示目录内容 列出指定目录下的文件和子目录列表。例如: ``` ls -l ``` #### 3. `...

    Linux GCC常用命令.pdf

    Linux GCC常用命令涵盖了GCC(GNU Compiler Collection)编译器的使用方法,它是编写和运行C、C++等语言程序的重要工具。GCC最初仅支持C语言编译,但随着发展,它已演化为一个强大的编译器集合,支持多种编程语言,...

    程序员的鄙视李安

    - **Vim**和**Emacs**是非常流行的命令行文本编辑器,尤其受Unix/Linux用户的喜爱。 - **Atom**、**Notepad++**和**Sublime Text**等图形界面编辑器则提供了更丰富的功能和更好的用户体验。 - **Android Studio**、*...

    Linux命令集合

    Linux命令集合提供了常用的操作指令,帮助程序员高效地进行系统管理、文件操作、网络通信等任务。以下是一些核心的Linux命令及其应用场景的详细解释: 1. **ls**:用于列出目录中的文件和子目录。通过添加参数,如`...

    linux命令--RUN[参照].pdf

    此外,`vi`或`vim`是Linux中常用的文本编辑器,虽然上手难度相对较高,但对于程序员和系统管理员而言,熟练掌握它是必不可少的。`less`或`more`命令用于分页查看文件内容,尤其适用于大文件。 在软件开发领域,...

    linux主要shell命令详解

    在Linux操作系统中,shell是一个非常重要的组成部分,它作为用户和Linux内核之间的接口程序,为用户提供了使用操作系统的...无论对于新手入门还是经验丰富的系统管理员,了解和精通shell命令都是必不可少的技能之一。

    Linux系统中Vi常用命令及高级应用

    在Linux系统中,Vi(Visual Editor)是一个强大的文本编辑器,对于系统管理员和程序员来说是必不可少的工具。Vi分为两种模式:命令模式和插入模式。在命令模式下,用户可以通过键盘输入各种命令来操作文本,而在插入...

    jdk-14.0.1_linux-x64_bin.tar.zip

    JDK(Java Development Kit)是Oracle公司发布的Java开发工具包,对于Java程序员来说,它是必不可少的工具。JDK 14.0.1是Java的一个重要版本,它包含了许多新特性和改进。在Linux环境下,正确安装和配置JDK对于Java...

    linux gdb调试命令.pdf

    Linux GDB(GNU Debugger)是一个功能强大的命令行调试工具,它可以用来调试C/C++和其他语言编写的程序...GDB作为一款功能强大的调试工具,在Linux平台上的程序员中广受欢迎,对于提高开发效率和代码质量具有重要作用。

    鸟哥的私房菜-linux学习必备

    《鸟哥的私房菜》是一本非常适合初学者学习Linux的资料,内容系统全面,是网管和程序员学习Linux不可或缺的参考书。Linux作为一个强大的开源操作系统,它广泛应用于服务器、桌面、嵌入式系统等领域。学习Linux不仅...

    java初学者的第一天,畅游于Linux

    在这一天,初学者通常会接触到Linux的基本概念、文件系统结构和一些常用的命令行操作。这份学习笔记中提到了很多基础知识点,这些知识点对于Java初学者来说也是相当有用的,因为Java程序运行在各种操作系统上,掌握...

    linux 网络变成 和c的编程

    "Linux系统命令及其使用详解.pdf"会提供Linux系统的常用命令详解,这对于日常的系统管理和问题排查非常实用。 总的来说,这些文件资料为深入理解Linux环境下的C编程和网络编程提供了丰富的资源。通过学习,你可以...

    shell常用命令

    对于初学者和中级程序员来说,掌握Shell的常用命令是必备技能。以下是一些关键的Shell命令及其用途: 1. **流程控制命令**: - `if` 语句:根据条件执行不同的代码块。例如: ```bash if [ -e file ]; then ...

Global site tag (gtag.js) - Google Analytics