• [linux] 由创建用户开始


    用户创建

    添加用户

    方案一(自动化添加):adduser <用户名> 后按提示设计密码、全名等
    方案二(个性化添加):useradd -m <用户名>, 设置密码 passwd <用户名>。当出现切换用户(su <用户名>)后只有$时,使用usermod -s /bin/bash <用户名>修复。

    设置用户组

    usermod -G groupname username:把用户username添加到groupname组,并从其他组中删除。
    如:usermod -G root libo 表示添加libo用户到root组中,并只属于root组;

    usermod -a -G groupname username:把用户username添加到groupname组,之前所属组不影响,即用户属于多个组。
    如:usermod -a -G amax libo表示把 libo用户附加到amax组中,libo原先所在组不受影响。

    usermod -G groupname1[, groupname2, …] username:把用户添加到groupname1(groupname2…等)组。
    如:usermod -G root, amax libo表示把libo用户添加到root和amax两个用户组里。

    赋权用户root权限:root用户登录sudo su, 修改 /etc/sudoers 文件:,找到下面一行,把前面的注释(#)去掉

     ## Allows people in group wheel to run all commands
     %wheel ALL=(ALL) ALL 
    
    • 1
    • 2

    查看系统用户和用户组信息

    系统用户组信息保存在/etc/group文件里,使用cat /etc/group查看,一行表示一个用户组,每个用户组是由3个:连起来的4个信息。
    比如:root:x:0:libo,liber表示用户组名为root,密码为x,用户组ID(或称GID)为0,用户包括libo和liber(如果用户名为空,则表示用户组只有名为用户组名的用户)

    系统用户信息保存在/etc/passwd 文件里,使用cat /etc/passwd查看,一行表示一个用户,每个用户是由6个:组成的7个信息。
    比如:root:x:0:0:root:/root:/bin/bash表示用户名为root,密码为x(代表加密密码保存在 /etc/shadow 文件中),用户ID为0(每个用户都要有一个唯一的 ID 。UID 号为 0 的是为 root 用户保留的,UID 号 1 到 99 是为系统用户保留的,UID 号 100-999 是为系统账户和群组保留的),用户组ID为0(每个用户组都有一个唯一的 GID ,保存在/etc/group文件中),用户信息用户根目录(用户登录状态下cd ~所到的目录),用户使用的shell类型

    系统用户信息可以用 cat /etc/passwd | cut -d: -f1查看

    | 表示管道,把cat的输出传给cut处理;cut取出每一行的内容并以:分割再输出

    查看用户信息

    who 查看当前登录用户名信息。
    比如:who 后显示

    root		pts/0		2020-05-22 12:16 (192,168.176.1)
    libo		:0				2020-05-20 11:29 (:0)
    
    • 1
    • 2

    每一行:当前登录的用户登录终端(tty表示本地登录,即在真实的机器上登录;pts表示远程终端,如果有多个远程终端,为了区别会加/0,1,2之,如pts/0、pts/1、pts/2…) 登录时间 登录的主机IP地址

    w 命令显示的信息比who命令显示的信息更加详细一点,他会对系统的资源做一些简单的统计,如一共有多少个登录用户,此Linux从开始到现在一共运行了多久等。

    whoami 查看当前登录用户名

    id 查看用户名的UID和用户组的GID信息(id <用户名> 0 为root权限,非0则不是。)

    删除用户

    userdel -r <用户名>

    共用其他用户的anaconda环境:

    修改anaconda路径:
    1.复制现有用户的annconda路径(假设已有用户amax)
    vim /home/amax/.bashrc后复制

    # >>> conda initialize >>>
    # !! Contents within this block are managed by 'conda init' !!
    __conda_setup="$('/home/amax/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
    if [ $? -eq 0 ]; then
        eval "$__conda_setup"
    else
        if [ -f "/home/amax/anaconda3/etc/profile.d/conda.sh" ]; then
            . "/home/amax/anaconda3/etc/profile.d/conda.sh"
        else
            export PATH="/home/amax/anaconda3/bin:$PATH"
        fi
    fi
    unset __conda_setup
    # <<< conda initialize <<<
    
    export LD_LIBRARY_PATH=/home/amax/anaconda3/lib:/home/amax/anaconda3/lib:
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    最后export LD_LIBRARY_PATH=/home/amax/anaconda3/lib:/home/amax/anaconda3/lib:表示共用程序路径。
    2.拷贝到个人用户的~/.bashrc文件下(假设新建用户名为libo
    vim /home/amax/.bashrc后粘贴在最后面
    3.刷新.bashrc配置:source ~/.bashrc

    也可以新建自己安装一个anaconda:下载好后bash Anaconda3-5.0.1-Linux-x86_64.sh一直yes

    设置免密登录

    方案一:(代码添加)本地ssh ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
    方案二:(自动添加):本地ssh ssh-copy-id -i ~/.ssh/id_rsa.pub user@host
    方案二:(手动添加)
    自动创建.ssh目录:ssh localhost
    创建authorized_keys文件:touch ~/.ssh/authorized_keys;并赋权:chmod 600 ~/.ssh/authorized_keys
    复制本地(~/.ssh/id_rsa.pub)公钥,在粘贴到远程~/.ssh/authorized_keys里去

    设置文件权限

    文件信息解读

    在Linux通过ll查看文件:

    • 7种文件类型:普通文件(-)、目录(d)、软连接(l)、像硬盘和光驱等块设备(b)、管道文件(p)、字符设备文件(c)、套接口文件/数据接口文件(s))。
    • 4种文件权限:0无(-)、4读(r)、2写(w)、1执行(x)。可以通过数字更改权限,如:chmod 777 1.txt

    比如:
    drwxr-xr-x 3 libo root 4096 11月 16 19:03 applications/

    drwxr-xr-x依次表示:d表示文件类型为目录,rwx表示文件所属用户的权限为读、写、执行, r-x表示文件所属组的权限为读、执行,r-x表示其他用户的权限为读、执行;
    3表示该文件下的第一级子目录下的文件个数,包括./(上级目录名)和../(上上级目录名);
    libo root表示文件所属用户 文件所属组
    4096表示目录符大小(如果文件类型为文件时表示文件大小),以字节度量;
    11月 16 19:03表示最后修改的月 日 时间
    applications/表示文件名

    文件权限可以通过操作权限所属关系进行设置。

    文件操作权限设置

    chmod [选项设置] [权限设置] 文件或目录的名称
    [选项设置]:-R :递归设置,针对文件夹(目录)
    [权限设置]1. 4种身份:文件所属用户(u)、文件所属组(g)、其他用户(o)、所有(ugo 或者 a)
    2. 3种类型:添加权限(+)、删除权限(-)、赋予权限(=)
    3. 3种限,r、w、x
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    比如:sudo chmod -R ugo=rwx AA/ 表示给文件所属用户、所属组、其他用户递归目录下所有文件设置读、写、执行权限;也可以写成:sudo chmod -R a=rwx AA/

    文件所属关系设置

    % 设置文件所属用户 文件所属组
    chown [选项设置] 文件所属新用户名称:文件所属新组名称 文件名称
    或
    chown [选项设置] 文件所属新用户名称:文件所属新组名称 文件名称
    [选项设置]:-R : 代表递归修改,主要针对文件夹
    
    • 1
    • 2
    • 3
    • 4
    • 5

    比如:chown libo:root 1.txt表示将文件1.txt设置为root组下的libo用户

    % 设置文件所属用户
    chown [选项设置] 文件所属新用户名称 文件名称
    [选项设置]:-R :代表递归修改,主要针对文件夹
    
    • 1
    • 2
    • 3

    比如:chown libo 1.txt表示将文件1.txt设置为用户libo

    % 设置文件所属组
    chgrp [选项设置] 文件所属新组名称 文件名称
    [选项设置]:-R : 代表递归修改,主要针对文件夹
    
    • 1
    • 2
    • 3

    比如:chgrp root 1.txt表示将文件1.txt设置为root组

    参考链接:
    https://blog.csdn.net/LEON1741/article/details/82386520
    https://www.51cto.com/article/746594.html

  • 相关阅读:
    【毕设必备】手把手带你用Python搭建一个简单的后端服务- API的创建,前后端交互的数据传递,GET,POST,JSON,FLASK
    数据结构教程
    TCP三次握手,四次挥手,你真的了解吗?
    使用Python+moviepy做音频的淡入淡出效果
    springboot系列(十六):如何实现发送邮件提醒,附完整源码(完结篇)
    hadoop基础
    Linux文件元数据操作
    Git 常用
    [附源码]计算机毕业设计springboot兴达五金日杂批发商店管理系统
    Spring Webflux DispatcherHandler源码整理
  • 原文地址:https://blog.csdn.net/HLBoy_happy/article/details/134428510