zoukankan      html  css  js  c++  java
  • Linux创建其他用户并为之授权

    转载自:https://www.linuxidc.com/Linux/2016-11/137549.htm;加了一些补充说明

    前言

    笔记本安装了一个CentOS,想要让别人也可以登录访问,用自己的账号确实不太好,于是准备新建一个用户给他。

    创建新用户

    创建一个用户名为:linuxidc

    [root@localhost ~]# adduser linuxidc
    (注意可以通过-d homename指定此账户的家目录名,如果没有则默认创建和用户名一样的家目录在/home下)
    (还可以通过-s执行此用户默认的shell解释器,其中-s /sbin/nologin是特殊的解释器使得此用户无法在界面登录一般用于后台的服务帐号,同时用-M来指定不要生成home目录)
    (还可以 -u 指定uid,比如我个人的silentdoer的uid是1000,它是每个账户递增的;还可以-g指定此用户所在组,如果没有指定的会自动创建一个和其同名的组并此用户属于这个组[除非用了-N];还可以用-e指定此账户到期时间,时间到了则无法再用)

    为这个用户初始化密码,linux会判断密码复杂度,不过可以强行忽略:

    [root@localhost ~]# passwd linuxidc(个人的测试是这里不会要求输入密码,但似乎是会自动创建一个密码,故要用passwd命令修改,如果有-p则在创建时就会要求输入密码)
    更改用户 zhangbiao 的密码 。
    新的 密码:
    无效的密码: 密码未通过字典检查 - 过于简单化/系统化
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。

    授权

    个人用户的权限只可以在本home下有完整权限(可以看到其他人的家目录但不能访问),其他目录要看别人授权。而经常需要root用户的权限,这时候sudo可以化身为root来操作。我记得我曾经sudo创建了文件,然后发现自己并没有读写权限,因为查看权限是root创建的(通过sudo执行的操作是属于root的,故touch文件后它属于root和root组,且自己测试后它的权限是rw-r--r--)。

    新创建的用户并不能使用sudo命令,需要给他添加授权。

    sudo命令的授权管理是在sudoers文件里的。可以看看sudoers:

    [root@localhost ~]# sudoers
    bash: sudoers: 未找到命令...
    [root@localhost ~]# whereis sudoers(注:这个类似这样搜索符合"^sudoers.*"的文件)
    sudoers: /etc/sudoers /etc/sudoers.d /usr/libexec/sudoers.so /usr/share/man/man5/sudoers.5.gz
    

    找到这个文件位置之后再查看权限:

    [root@localhost ~]# ls -l /etc/sudoers
    -r--r----- 1 root root 4251 9月  25 15:08 /etc/sudoers

    是的,只有只读的权限,如果想要修改的话,需要先添加w权限:

    [root@localhost ~]# chmod -v u+w /etc/sudoers(verbose详情输出,u+w表示为其所属的user添加w权限,事后要通过u-w取消此权限防止一些误操作)
    mode of "/etc/sudoers" changed from 0440 (r--r-----) to 0640 (rw-r-----)
    

    然后就可以添加内容了,在下面的一行下追加新增的用户:

    [root@localhost ~]# vim /etc/sudoers
    
    
    ## Allow root to run any commands anywher  
    root    ALL=(ALL)       ALL  
    linuxidc  ALL=(ALL)       ALL  #这个是新增的用户(注意在wheel组的用户也可以sudo,而且尽管这个用户和root一样都是ALL但实际上不具备和root一模一样的功能)

    wq保存退出,这时候要记得将写权限收回:

    [root@localhost ~]# chmod -v u-w /etc/sudoers
    mode of "/etc/sudoers" changed from 0640 (rw-r-----) to 0440 (r--r-----)

    这时候使用新用户登录,使用sudo:(注:那种-s是/sbin/nologin的不会出现在可登录的用户列表里)

    [linuxidc@localhost ~]$ sudo cat /etc/passwd
    [sudo] password for linuxidc: 
    
    We trust you have received the usual lecture from the local System
    Administrator. It usually boils down to these three things:
    
        #1) Respect the privacy of others.
        #2) Think before you type.
        #3) With great power comes great responsibility.

    第一次使用会提示你,你已经化身超人,身负责任。而且需要输入密码才可以下一步。如果不想需要输入密码怎么办,将最后一个ALL修改成NOPASSWD: ALL

  • 相关阅读:
    什么是架构
    jenkins权限插件配置
    解决Error response from daemon: oci runtime error: container_linux.go:247: starting container process
    解决“/tmp/crontab bad minute”问题
    yml链接mysql路径serverTimezone=UTC的那些坑
    java请求头导致特殊字符为空问题
    使用ssh连接WSL
    系统设计与任务分配
    需求规格说明书
    选题报告
  • 原文地址:https://www.cnblogs.com/silentdoer/p/8732718.html
Copyright © 2011-2022 走看看