[NOTE] ClockSynchronize

Ubuntu

  • Check your current time-zone: cat /etc/timezone
  • Check if your clock is synchronized with the internet: timedatectl
1
2
3
4
5
6
7
8
root@openstack1:~/kubernetes# timedatectl
Local time: Tue 2019-12-17 10:30:02 UTC
Universal time: Tue 2019-12-17 10:30:02 UTC
RTC time: Tue 2019-12-17 10:30:02
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no

If you haven’t sychronized with internet, the value of System clock synchronize must be no

Use sudo systemctl restart systemd-timesyncd.service to activate timesyncd

1
2
3
4
5
6
7
8
9
10
root@openstack1:~/kubernetes# systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendo
Active: active (running) since Mon 2019-12-16 09:24:02 UTC; 1 day 1h ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 27584 (systemd-timesyn)
Status: "Synchronized to time server 91.189.94.4:123 (ntp.ubuntu.com)."
Tasks: 2 (limit: 4915)
CGroup: /system.slice/systemd-timesyncd.service
└─27584 /lib/systemd/systemd-timesyncd
  • The final key to synchronize the clock

sudo timedatectl set-ntp true

  • Switch your time-zone

timedatectl list-timezones to check all the time-zones.

sudo timedatectl set-timezone Asia/Shanghai

CentOS

  • Using command line

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # installation
    yum install chrony
    # enable chronyd
    systemctl start chronyd
    systemctl enable chronyd
    # set timezone to Shanghai
    timedatectl set-timezone Asia/Shanghai
    # launch it
    timedatectl set-ntp yes

[NOTE] 构建HTTPS

@hou说了许久,刚好上次申请的证书快过期了,这次把泛域名开启HTTPS的一些流程及注意事项记录一下。

UPDATE 2020/06/15

certbot 太难用了,说是自动更新,每次都不 work,换用 acme.sh

阅读更多

[Script] 脚本乱写I

Shell脚本乱写(一)

1. 自动新增用户并配置权限

要实现:

  • 读取参数:选定运行主机、用户名
  • 新建用户到组 usreadd -G
    • 为用户配置默认密码:centos中为用户配置默认密码可以使用passwd --stdin USERNAME,在脚本中可以使用echo "PASSWORD" | passwd --stdin USERNAME,但在Ubuntu中passwd并不支持--stdin,此时可以使用echo USERNAME:PASSWORD | chpasswd
    • 事先将用户组加入到/etc/sudoers
  • 用户首次登陆时提示需要修改密码,用户激活时限为2年 chage
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
# Program:
# Grand a new user with ROOT privileges.
#
# History:
# 2019/11/9 Fusidic First release
echo "Please input username"
read username
path='/root/bin/hosts'
cat /root/bin/hosts | while read line;do
echo $line
ssh -n $line "useradd ${username} -m -G AWG &"
ssh -n $line "echo "${username}:nuaacs204" | chpasswd &"
# ssh -n $line "chage -d 0 ${username} &"
done

遇到的问题:

  • while循环只执行一次,后添加了-n参数

  • 新建用户修改权限失败passwd: Authentication token manipulation error passwd: password unchanged,这是由于有权限改/etc/passwd而无权限修改/etc/shadow

  • 未解决:使用chage修改用户有效时间,以此达到让用户登陆账户立即强制改密码存在问题,改密码无效,可能是权限问题。

[NOTE] Frp原理深入实践、Nginx容器实践

近期将阿里云上的博客服务迁移到了本地机房服务器,同时oj平台的搭建也开始启动,目前多个服务通过不同端口访问的方式显得太过粗糙,本文将通过frp、Nginx、docker等工具以实现阿里云主机对多个本地服务的反向代理,对每个服务都分出对应的二级域名。

在frp的使用上,本文相较之前的文章更加深入,对frp的多个功能作出更多的探索。另外,也将初步地学习实践Nginx引擎。

阅读更多

Linux用户权限管理

指令

  • 添加用户

    useradd -d /home/test test -m,创建用户test(自动生成目录),该用户属于test用户组

    useradd -d /home/a a -g test -m,创建用户a,属于test用户组

    -d:指定用户登录系统时的主目录

    -m:自动建立目录

    -g:指定组名称

  • 设置密码

    passwd test

  • 删除用户

    userdel test删除test用户,但并不删除/home/test

    userdel -r test删除test用户与其目录

  • 切换用户

    su

  • 查看当前用户组

    • cat /etc/group
    • groupmod+三次tab键
  • 组账号操作

    • 添加组:groupadd
    • 删除组:groupdel
    • 查看组:cat /etc/group
    • 修改用户所在组:usermod -g group_name user_name
  • 查看用户组成员

    groups group_name

  • 为新用户添加sudo权限

    sudo usermod -a -G adm user_name

    sudo usermod -a -G sudo user_name

实例:

linux环境下创建新用户在使用docker中会遇到permission denied的问题,这是由于docker启动守护进程的时候,会默认赋予docker用户组的成员读写unix socket的权限,因此,将新用户加入到docker用户组中,问题就可以解决了:

sudo usermod -a -G docker zjs

之后需要更新用户组newgrp docker

  • 修改文件权限

    • 字母法:chmod u/g/o/a +/-/= rwx file_name

      所有者 含义
      u user
      g group
      o other
      a all
      + - = 含义
      + 增加权限
      - 撤销权限
      = 设定权限
      r w x 含义
      r read
      w write
      x excute
    • 数字法:

      chomod 777 test/ -R -R表示级联授权

      777:所有者用户/组内其他用户/其他组用户 = rwx/rwx/rwx

  • 修改文件所有者

    chown user_name file_name

  • 修改文件所属组

  • chgrp group_name file_name

操作

添加用户赋予权限:

  • sudo vi /etc/sudoers
  • root ALL=(ALL) ALL下添加一行test ALL=(ALL) ALL

[NOTE] 安装hadoop相关注意事项

  • linux在启动过程中通过读取/etc/profile文件中内容完成相关环境的载入,而ssh登陆远程主机的时候并不会加载/etc/profile中的配置文件。

    因此jdk安装完成后需要两次配置,一为配置/etc/profile中的环境变量,二将hadoop启动脚本中调用的HADOOP_HOME改为绝对路径的形式。

阅读更多