Ubuntu 기본 패키지를 설치하고, 부팅할 때 아래와 같이 Network 설정 화면에서 오랜 시간 대기하는 경우가 있다.
A start job is running for wait for network to be configured
일단, 부팅되면 root 계정으로 아래와 같이 설정을 수정하고 reboot하면, 빠르게 부팅될 것이다.
##
## Network connection을 기다라지 않기 위해 아래와 같이
## systemd-networkd-wait-online.service 서비스를 비활성화한다.
##
$ systemctl disable systemd-networkd-wait-online.service
##
## 다른 서비스에 의해서 systemd-networkd-wait-online.service 서비스가 활성화되는 것을 막기 위해
## 아래와 같이 systemd-networkd-wait-online.service 서비스를 masking한다.
##
$ systemctl mask systemd-networkd-wait-online.service
참고: DHCP 설정 Off는 위 이슈와 관련은 없지만, 0.1초라도 부팅 시간을 줄이고자 한다면 DHCP를 off하는 것이 좋다. (물론, DHCP를 사용할 일이 없을 때만~~~)
##
## DHCP로 IP address 설정할 필요가 없다면, DHCP 기능을 끈다.
##
$ cat /etc/netplan/00-installer-config.yaml
... 중간 생략 ...
enp7s0:
dhcp4: false
... 중간 생략 ...
$
Ubuntu 20.04 또는 Ubuntu 22.04에 Samba(SMB) 서버를 설치하고 싶다면 아래 절차를 따라하면 잘 동작한다.
##
## Samba 서버 프로그램을 설치한다.
##
$ sudo apt-get install -y samba
...
##
## Samba 서버가 공유할 폴더(디렉토리) 정보를 설정한다.
##
$ vi /etc/samba/smb.conf
... 중간 생략 ...
;
; 아래 내용을 추가한다.
;
[mybox]
comment = My File Box
path = /home/sejong
guest ok = no
browseable = yes
writable = yes
create mask = 0777
directory mask = 0777
valid users = sejong
... 중간 생략 ...
##
## Linux 계정 'sejong'을 samba 접근 계정으로 추가한다.
## 암호는 Linux 계정 'sejong'의 암호와 달라도 된다.
##
$ sudo smbpasswd -a sejong
##
## Samba 서버 데몬을 재기동한다.
##
$ sudo /etc/init.d/smbd restart
## 또는 위 명령을 아래와 같이 수행해도 된다.
## $ sudo systemctl restart smbd
클라이언트 PC에서 아래와 같이 Samba 서버에 접속시도한다. (아래는 Macbook에서 실행한 화면)
Samba 서버 설정 끝 !!! Samba 서버 관리 명령을 알고 싶다면, 아래 내용을 더 읽어보아요~~
Samba 계정 정보를 보고 싶다면, 아래와 같이 `pdbedit` 명령으로 조회할 수 있다.
$ pdbedit -L -v
---------------
Unix username: sejong
NT username:
Account Flags: [U ]
Home Directory: \\ANDREW-UBUNTU\sejong
HomeDir Drive:
Logon Script:
Profile Path: \\ANDREW-UBUNTU\sejong\profile
Domain: ANDREW-UBUNTU
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Thu, 07 Feb 2036 00:06:39 KST
Kickoff time: Thu, 07 Feb 2036 00:06:39 KST
Password last set: Wed, 07 Dec 2022 16:06:30 KST
Password can change: Wed, 07 Dec 2022 16:06:30 KST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
$
Samba 서버에 접속한 Client 정보를 보고 싶다면 아래와 같이 `smbstatus` 명령을 사용한다.
$ smbstatus
Samba version 4.15.9-Ubuntu
PID Username Group Machine Protocol Version Encryption Signing
----------------------------------------------------------------------------------------------------------------------------------------
295419 sejong sejong 10.1.3.169 (ipv4:10.1.3.169:63352) SMB3_11 - partial(AES-128-CMAC)
Service pid Machine Connected at Encryption Signing
---------------------------------------------------------------------------------------------
mybox 295419 10.1.3.169 Wed Dec 7 04:23:23 PM 2022 KST - -
Locked files:
Pid User(ID) DenyMode Access R/W Oplock SharePath Name Time
--------------------------------------------------------------------------------------------------
295419 1001 DENY_NONE 0x100081 RDONLY NONE /home/sejong . Wed Dec 7 16:23:22 2022
계정 정보를 변경하고 싶다면, `usermod` 명령을 사용한다.
$ usermod --help
Usage: usermod [options] LOGIN
Options:
-b, --badnames allow bad names
-c, --comment COMMENT new value of the GECOS field
-d, --home HOME_DIR new home directory for the user account
-e, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE
-f, --inactive INACTIVE set password inactive after expiration
to INACTIVE
-g, --gid GROUP force use GROUP as new primary group
-G, --groups GROUPS new list of supplementary GROUPS
-a, --append append the user to the supplemental GROUPS
mentioned by the -G option without removing
the user from other groups
-h, --help display this help message and exit
-l, --login NEW_LOGIN new value of the login name
-L, --lock lock the user account
-m, --move-home move contents of the home directory to the
new location (use only with -d)
-o, --non-unique allow using duplicate (non-unique) UID
-p, --password PASSWORD use encrypted password for the new password
-R, --root CHROOT_DIR directory to chroot into
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-s, --shell SHELL new login shell for the user account
-u, --uid UID new UID for the user account
-U, --unlock unlock the user account
-v, --add-subuids FIRST-LAST add range of subordinate uids
-V, --del-subuids FIRST-LAST remove range of subordinate uids
-w, --add-subgids FIRST-LAST add range of subordinate gids
-W, --del-subgids FIRST-LAST remove range of subordinate gids
-Z, --selinux-user SEUSER new SELinux user mapping for the user account
아래의 Network Setting 화면에서 [ VPN ] 항목 옆에 있는 + 버튼을 누르고 VPN Server 정보를 입력하기만 하면 끝이다.
위와 같이 설정하고, VPN 연결을 활성화하는 버튼을 누른다.
그런데 VPN 연결을 몇시간 사용하다보면, 간혹 모르는 사이에 끊어지는 경우가 있다.
그런 경우 아래와 같은 nmcli CLI 명령을 crontab에 추가하고 1시간 간격으로 자동 실행하도록 하면 편하다.
$ nmcli con up id "VPN1"
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/24)
$
알아두면 좋은 명령어 예시
##
## VPN 연결 정보 조회
##
$ nmcli con
NAME UUID TYPE DEVICE
VPN1 b0838d77-ae82-4573-a15b-fba0f8884594 vpn enp4s0
Wired connection 1 bef5ca16-baca-35e4-8259-e5dbbacbe1c0 ethernet enp4s0
$
$ nmcli con down id VPN1