# - bof - #





# -  - #
# - Ubuntu - #
Goto :CreateGroup
Goto :CreateUser



# -  - #
# - Get my public IP - #
dig +short txt ch whoami.cloudflare @1.0.0.1;
dig +short myip.opendns.com @resolver1.opendns.com;
dig TXT +short o-o.myaddr.l.google.com @ns1.google.com;
dig TXT +short o-o.myaddr.l.google.com @ns1.google.com | awk -F'"' '{ print $2}';



# -  - #
# - Documentation - #
https://ostechnix.com/add-delete-and-grant-sudo-privileges-to-users-in-arch-linux/
https://wiki.archlinux.org/title/users_and_groups


# -  - #
# - Install members option - #
#sudo apt install members;
#members is_derayo;





# -  - #
# - aServer / uServer - #



# -  - #
# - umask configuration - #
sudo vim /etc/profile;
# Set umask
#umask 022
umask 002

#-rw-rw-r--  1 is_derayo is_derayo   15 Mar 31 09:25 TestFile.txt





# :1
# -  - #
# - Create user & group - #


# :1.1
# -  - #
# - Create user samples - #
sudo adduser temp;
sudo adduser --home /home/temp temp;
sudo adduser --home /home/temp --shell /bin/bash --ingroup ssh temp;

sudo useradd mario;                     # Without home
sudo useradd -m mario;                  # With home & Desktop, Documents, Downloads, Music, etc
sudo useradd --create-home mario;       # With home as well

sudo mkdir /home/jail/mario;            # With no Desktop, Documents, Downloads, Music, etc
sudo useradd -d /home/jail/mario mario;
sudo passwd mario;
sudo useradd -g developers -s /usr/bin/nologin -d /Data/Development/marioPHP mario;
sudo useradd -g developers -d /Data/Development/marioPHP mario;


# :1.2
# -  - #
# - Create user - #
sudo useradd -m marlene;
sudo passwd marlene;



# sudo userdel -rf mario;


# :1.3
# -  - #
# - Check user privileges - #
sudo -lU marlene;
sudo -lU mario;
id mario;





# :2
# -  - #
# - Configure FTP - #
# - Access to user directory only - #
# - Done in both uServers - #

sudo vim /etc/vsftpd.conf;

local_enables=YES
write_enables=YES
chroot_local_user=YES
allow_writeable_chroot=YES

sudo systemctl restart vsftpd;



# -  - #
# - Documentation (permissions) - #
https://wiki.archlinux.org/title/File_permissions_and_attributes#Changing_permissions



# :3
# -  - #
# - is_derayo user - #

# :3.1
# -  - #
# - Create ssh jail directory - #
sudo mkdir -p /home/jail;
sudo chmod 755 /home/jail;

# :3.2
# -  - #
# - Create jail group - #
sudo groupadd -g 10900 jail;

# :3.3
# -  - #
# - Create developers group - #
sudo groupadd -g 10100 developers;
sudo usermod -aG developers is_derayo;



# :4
# -  - #
# - Create Development PHP users' directory - #
mkdir /Data/Development;
sudo chown is_derayo:developers /Data/Development;
sudo chmod -R u+s /Data/Development;
sudo chmod -R g+s /Data/Development;

# :4.1
# -  - #
# - Create developers directory - #
mkdir /Data/Development/marioPHP;
sudo chown mario:developers /Data/Development/marioPHP;
mkdir /Data/Development/josePHP;
sudo chown jose:developers /Data/Development/josePHP;

# :4.2
# -  - #
# - Create Development directory in WebServer - #
mkdir /Data/WebServer/Development;
sudo chown is_derayo:developers /Data/WebServer/Development;
sudo chmod -R u+s /Data/WebServer/Development;
sudo chmod -R g+s /Data/WebServer/Development;

# :4.5
# -  - #
# - Create users link into WebServer/Development directory - #
cd /Data/WebServer/Development;
ln -s /Data/Development/marioPHP .;
ln -s /Data/Development/josePHP .;



# :5
# -  - #
# - Create ssh jail user mario - #
sudo mkdir -p /home/jail/mario;
sudo useradd mario -d /home/jail/mario -s /bin/bash;

# :5.1
# -  - #
# - Configure user jose - #
sudo chown -R mario:mario /home/jail/mario;
sudo chmod 700 /home/jail/mario;
#sudo passwd mario;
#echo "user:passwd" | chpasswd;
echo "mario:canario" | sudo chpasswd;
sudo usermod -aG developers mario;

# :5.2
# -  - #
# - Copy .bashrc to mario - #
cd ~/;
sudo cp .bashrc /home/jail/mario;
sudo chown mario:mario /home/jail/mario/.bashrc;

# :5.3
# -  - #
# - ssh mario & configure .bashrc - #
ssh mario@192.168.1.150;
xdg-user-dirs-update;
vim .bash_profile;
#
# ~/.bash_profile
#
[[ -f ~/.bashrc ]] && . ~/.bashrc

# :5.4
# -  - #
# - Create PHP folder in mario - #
sudo mkdir -p /home/jail/mario/marioPHP;
sudo chown mario:developers /home/jail/mario/marioPHP;
sudo chmod -R u+s /home/jail/mario/marioPHP;
sudo chmod -R g+s /home/jail/mario/marioPHP;
sudo chmod 775 /home/jail/mario/marioPHP;

# :5.5
# -  - #
# - Add mario to jail group - #
sudo usermod -aG jail mario;

<<'comment'
    sudo setfacl -R -m "u::rwX" -m "g::rwX" -m "o::rX" -d /Data/Development/josePHP;
    setfacl -R -m "u::rwx" /Data/Development/marioPHP;
    setfacl -R -m "g::rwx" /Data/Development/marioPHP;
    setfacl -R -m "o::rx" /Data/Development/marioPHP;
comment



# :10
# -  - #
# - Create ssh jail user jose - #
sudo mkdir -p /home/jail/jose;
sudo useradd jose -d /home/jail/jose -s /bin/bash;

# :10.1
# -  - #
# - Configure user jose - #
sudo chown -R jose:jose /home/jail/jose;
sudo chmod 700 /home/jail/jose;
#sudo passwd jose;
#echo "user:passwd" | chpasswd;
echo "jose:jose" | sudo chpasswd;
sudo usermod -aG developers jose;

# :10.2
# -  - #
# - Copy .bashrc to mario - #
cd ~/;
sudo cp .bashrc /home/jail/jose;
sudo chown jose:jose /home/jail/jose/.bashrc;

# :10.3
# -  - #
# - ssh jose & configure .bashrc - #
ssh jose@192.168.1.150;
xdg-user-dirs-update;
vim .bash_profile;
#
# ~/.bash_profile
#
[[ -f ~/.bashrc ]] && . ~/.bashrc

# :10.4
# -  - #
# - Create PHP folder in mario - #
sudo mkdir -p /home/jail/jose/josePHP;
sudo chown jose:developers /home/jail/jose/josePHP;
sudo chmod -R u+s /home/jail/jose/josePHP;
sudo chmod -R g+s /home/jail/jose/josePHP;
sudo chmod 775 /home/jail/jose/josePHP;

# :10.5
# -  - #
# - Add jose to jail group - #
sudo usermod -aG jail jose;

<<'comment'
    sudo setfacl -R -m "u::rwx" /Data/Development/josePHP;
    sudo setfacl -R -m "g::rwx" /Data/Development/josePHP;
    sudo setfacl -R -m "o::rx" /Data/Development/josePHP;
    sudo setfacl -R -m "u::rwX" -m "g::rwX" -m "o::rX" -d /Data/Development/josePHP;
comment





# :11
# -  - #
# - Later at the end - #
# - Add mario to jail group - #
sudo usermod -aG jail mario;
sudo usermod -aG jail jose;

# -  - #
# - Remove mario from jail group - #
sudo gpasswd -d mario jail;
sudo gpasswd -d jose jail;

sftp://mario@192.168.1.150
sftp://jose@192.168.1.150



# :12
sudo groupadd -g 10100 developers;
sudo usermod -aG developers is_derayo;
sudo usermod -aG developers mario;
sudo usermod -aG developers jose;



# :13
# -  - #
# - Modify ssh_config - #
# - Done in both uServers - #

sudo vim /etc/ssh/sshd_config;

# -  - #
# - Arch - #
#Subsystem sftp /usr/libexec/openssh/sftp-server
# - Ubuntu - #
#Subsystem sftp /usr/lib/openssh/sftp-server

Subsystem sftp nternal-sftp

Match Group jail
      ChrootDirectory /home/jail

sudo systemctl restart sshd;



# :14
# -  - #
# - Add users to jail group - #
sudo usermod -aG jail mario;
sudo usermod -aG jail jose;



# :15
# -  - #
# - Create groups - #
sudo groupadd -g Group_ID Group_Name

sudo groupadd -g 10100 developers;
sudo usermod -aG developers is_derayo;
sudo usermod -aG developers mario;

sudo groupadd -g 1000 is_derayo2;
sudo groupadd -g 1001 is_derayo2;

sudo useradd -r -u 1000 -g 1000 -s /usr/bin/nologin is_derayo2;
sudo useradd -r -u 1001 -g 1001 -s /usr/bin/nologin is_derayo2;


# :15.1
# -  - #
# - Add user to sudo group - #
sudo usermod -aG wheel marlene;
sudo usermod -aG is_derayo marlene;



# :16
# -  - #
# - Delete user - #
sudo userdel -rf marlene;
sudo userdel -rf mario;
sudo userdel -rf jose;





# :17
# -  - #
# - Add PHP jailUsers folder to fstab - #
# <file system>                          <dir> <type> <options>    <dump> <pass>
UUID=36d668e2-795a-44e4-82fe-a3c5e3b8d8c5 /     ext4   rw,relatime  0      1
/swap.img                                 none  swap   defaults     0      0

/Data/Development/marioPHP /home/jail/mario/marioPHP none bind,defaults,nofail,x-systemd.requires=zfs-mount.service 0 0
/Data/Development/josePHP /home/jail/jose/josePHP none bind,defaults,nofail,x-systemd.requires=zfs-mount.service 0 0

/Data/Development/juanPHP /home/jail/juan/juanPHP none bind,defaults,nofail,x-systemd.requires=zfs-mount.service 0 0


sudo mount -a;





# -  - #
# - Arch - #

:a
# -  - #
# - Create user - #
sudo useradd -m jcarlo -p CVandemberg
sudo usermod -aG wheel,audio,video,optical,storage jcarlo;
sudo usermod -c 'Jose Carlo Vandemberg' jcarlo; 
sudo passwd jcarlo
la /home/

:b
# -  - #
# - Delete user - #
sudo userdel -r juan;






# -  - #
# - Ubuntu - #

# :18
# -  - #
# - Create user - #
sudo adduser temp;
sudo adduser --home /home/temp temp;
sudo adduser --home /home/temp --shell /bin/bash --ingroup ssh temp;





:CreateUser
# -  - #
# - Ubuntu - #
# - Create sudo user - #

# -  - #
# - Create user - #
sudo adduser marlene;
sudo usermod -aG sudo marlene;

su - marlene;
xdg-user-dirs-update;

# -  - #
# - Change passwd - #
sudo passwd marlene;

# -  - #
# - Delete user - #
# sudo deluser --remove-home --remove-all-files marlene;
# sudo userdel -rf marlene;



# -  - #
# - Create user - #
# - Administrator user: is_derayo - #
sudo adduser is_derayo;
sudo usermod -aG sudo is_derayo;
sudo usermod -u 1000 is_derayo;
sudo usermod -c "Djalmar Enrique Rayo" is_derayo;

# -  - #
# - Change passwd - #
# sudo passwd is_derayo;

su - is_derayo;
xdg-user-dirs-update;

# -  - #
# - Delete user - #
# sudo deluser --remove-home --remove-all-files is_derayo;
# sudo userdel -rf is_derayo;



sudo adduser cvandemberg;
sudo usermod -aG sudo cvandemberg;





# -  - #
# - Change user's name - #
sudo su;

killall -u juan;
sudo usermod -md /home/is_derayo -l is_derayo juan;
sudo groupmod -n is_derayo juan;






:CreateGroup
# -  - #
# - Create groups - #
sudo groupadd -g Group_ID Group_Name

sudo groupadd -g 10100 developers;





# -  - #
# - Create user eblanco - #
sudo adduser eblanco;
sudo usermod -aG developers eblanco;
#sudo passwd eblanco;

sudo cp /home/juan/.bashrc /home/eblanco/.bashrc;
sudo cp /home/juan/.rc-Alias /home/eblanco/.rc-Alias;

su - eblanco;
xdg-user-dirs-update;
ln -s /Data/WebServer /home/eblanco/WebServer;

# -  - #
# - Terminal - #
ssh eblanco@www.rrpc.us -p 2222;

# -  - #
# - Thunar - #
sftp://eblanco@www.rrpc.us:2222/Data/WebServer



# -  - #
# - Create user with questions - #
sudo adduser juan;
sudo usermod -aG developers juan;
sudo cp .bashrc /home/juan/.bashrc;
sudo cp .rc-Alias /home/juan/.rc-Alias;

su -juan;
xdg-user-dirs-update;
ln -s /Data/WebServer /home/juan/WebServer;

ssh juan@www.rrpc.us -p 2222;
ssh is_derayo@www.rrpc.us -p 2222;



# -  - #
# - Make all folders subsequently created inside a /Data/WebServer to be owned by group - #
sudo chmod g+s /Data/WebServer;



sudo usermod -aG developers is_derayo;
sudo usermod -aG developers cvandemberg;



#sudo adduser --group sudo newuser;
#sudo adduser --group sudo marlene;
#sudo adduser --group sudo tmp;
#sudo adduser existing_user sudo;


# -  - #
# - Ubuntu - #
# - Create user (no bash) - #

# -  - #
#sudo useradd -G sudo is_derayo2;
#sudo useradd -G is_derayo2 is_derayo2;
#sudo useradd -G 1000 is_derayo2;
# - Change passwd - #
#sudo passwd is_derayo2;


id marlena;
su - marlena;
sudo ls -l /etc/shadow;


# -  - #
# - Another syntax - #
sudo usermod -aG sudo UserNameHere
sudo usermod -aG sudo sai
id sai



# -  - #
# - Authorize user folder (if not created before) - #
sudo chown temp:temp /home/temp
sudo chmod 755 /home/temp




# -  - #
# - Show user groups - #
groups;
groups is_derayo;
cat /etc/group;
cat /etc/group | grep is_derayo;
id -G is_derayo;



# -  - #
# - Add user to a group/groups - #

By default, new user is only in their own group.
A user and its own group share the same name.
In order to add the user to a new group:

sudo usermod -aG sudo is_derayo;
sudo usermod -a -G sudo is_derayo;

sudo usermod -aG sudo,sftpserver is_derayo;
sudo usermod -aG sudo,sftpserver,adm,dip is_derayo;



# -  - #
# - Add temp to users group - #
sudo usermod -aG users temp;

# -  - #
# - delete user fro sudo group - #
sudo deluser temp sudo;

# -  - #
# - Show if temp user has sudo capabilities - #
sudo -l -U temp;

# -  - #
cat /etc/group | grep temp;
cat /etc/passwd | grep temp;

# -  - #
# - Completely delete user linux - #
# - Don't use - #
sudo deluser --remove-home --remove-all-files temp;
sudo deluser --remove-home --remove-all-files cvandemberg;








# -  - #
# - Create group - #
https://www.techonthenet.com/linux/sysadmin/ubuntu/create_group_14_04.php


sudo groupadd -g sftpserver;
sudo groupadd -g 10000 students;
sudo groupadd -g 10100 developers;


# -  - #
# - Create user - #
https://websiteforstudents.com/adding-new-users-ubuntu-17-04-17-10/


sudo adduser mariof;
sudo adduser cleaningguy;



# -  - #
# - Give root rights to new user - #
If you want to add the user to sudo/users group.

sudo usermod -aG developers mariof;
sudo usermod -G sudo cleaningguy;
sudo usermod -aG users cleaningguy;
sudo usermod -aG sudo,users cleaningguy;


# -  - #
# - Add Multiple Supplementary/Secondary Groups using Linux usermod command - #
usermod -a -G developers,workers ricky



# -  - #
http://www.elinuxbook.com/linux-usermod-command-with-examples/



# -  - #
# - Set comment for a User Account - #
usermod -c "my name is john" john

cat /etc/passwd | grep john
john:x:502:502:my name is john:/home/john:/bin/bash 



# -  - #
# - Lock a User Account - #
usermod -L john

cat /etc/shadow | grep john
john:!$1$Rr8aOLUq$txkhPu.DqYCSG7FDEc4O71:17312:0:99999:7:::



# -  - #
# - Unlock a User Account - #
usermod -U john

cat /etc/shadow | grep john
john:$1$Rr8aOLUq$txkhPu.DqYCSG7FDEc4O71:17312:0:99999:7:::



# -  - #
# - Change ID (User ID) - #
id john
uid=502(john) gid=502(john) groups=502(john)

# - Change UID of a User Account - #
sudo usermod -u 555 john;
sudo usermod -u 1000 is_derayo;

id john
uid=555(john) gid=502(john) groups=502(john)



# -  - #
# - Rename Login Name - #
usermod -l ricky john

id john
id: john: No such user

id ricky
uid=555(ricky) gid=502(john) groups=502(john)



# -  - #
# - Set Expiry date for a User Account - #
usermod -e 2017-06-15 ricky

chage -l ricky

Last password change					: May 26, 2017
Password expires					: never
Password inactive					: never
Account expires						: Jun 15, 2017
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7



# -  - #
# - Change Primary Group of a User Account - #
id tony
uid=556(tony) gid=556(tony) groups=556(tony)

# -  - #
Change the Primary Group
sudo usermod -g admins tony;

id tony
uid=556(tony) gid=503(admins) groups=503(admins)



# -  - #
# - Add Multiple Supplementary/Secondary Groups using Linux usermod command - #
usermod -a -G developers,workers ricky

id ricky
uid=555(ricky) gid=502(john) groups=502(john),557(developers),558(workers)



# -  - #
# - Change Home Directory - #
usermod -d /users/elinuxbook elinuxbook

cat /etc/passwd | grep elinuxbook
elinuxbook:x:557:559::/users/elinuxbook:/bin/bash



# -  - #
# - Set Password Inactive for a User Account - #
usermod -f 10 elinuxbook

cat /etc/shadow | grep elinuxbook
elinuxbook:$1$HQEiPMJa$A1IXvuj8Ys08eLolPz6fP1:17312:0:99999:7:10::



# -  - #
# - Move Home Directory of a User Account - #

# - Creating a New User Account and Set Password - #
useradd shree
passwd shree

# - Changing to User's Home Directory - #
cd /home/shree/
ls

# - Creating some files - #
touch file{1,2,3,4,5}.txt
ls
file1.txt  file2.txt  file3.txt  file4.txt  file5.txt

# - Move the home directory of the user account shree - #
usermod -m -d /users/shree shree

cat /etc/passwd | grep shree
shree:x:558:560::/users/shree:/bin/bash

cd /users/shree/
ls
file1.txt  file2.txt  file3.txt  file4.txt  file5.txt

cd /home/
ls
elinuxbook  john  tony



# -  - #
# - Change Shell Script of User Account - #
usermod -s /etc/test elinuxbook

cat /etc/passwd | grep elinuxbook
elinuxbook:x:557:503::/users/elinuxbook:/etc/test



# -  - #
# - For more Help on usermod command - #
usermod --help









# - How do I change user name (rename user name) or - #
# - UID under a Linux operating system using command line tools. - #

# - The syntax is as follows to rename by user name at the terminal: - #
usermod -l login-name old-name

# - The syntax is as follows to rename by a UID (user ID): - #
# - usermod -u UID username

# - get tom ids - #
id tom

# - see login info - #
grep ^tom: /etc/passwd

# - see group info - #
grep ^tom: /etc/group

# - See home dir permissions - #
ls -ld /home/tom/

# - See process owned by tom user/group - #
ps aux | grep tom
ps -u tom
ps -g tom

# - Task: Change username from tom to jerry - #
# - Type the usermod command as follows: - #
id tom
usermod -l jerry tom

# - Verify - #
id tom
id jerry
ls -ld /home/tom

# - Task: User home directory from /home/tom/ to /home/jerry - #

# - The syntax is: - #
usermod -d /home/jerry -m jerry
id jerry
ls -ld /home/jerry

# - Sample outputs: - #
uid=1001(jerry) gid=1001(jerry) groups=1001(jerry)
drwxr-xr-x 2 jerry jerry 4096 Apr 21 15:53 /home/jerry/

# - Task: Change user tom UID from 5001 to 10000 - #
# - Type the usermod command as follows: - #
id tom
usermod -u 10000 tom
id tom

# - ubuntu - #
killall -u old
id old
usermod -l new old
groupmod -n new old
usermod -d /home/new -m new
usermod -c “New Real Name” new
id new

# - we can view all details about user modifications and Changes. - #
man usermod

# - we can view all user ang group accounts, timestamps , bash. - #
/etc/passwd

# - to change the user name - #
usermod -l new old

# - to change the home directory - #
usermod -d /home/new

# - to change the jickos..,field... - #
usermod -c

# - Open Suse - Chenge username - #
usermod -l new old

# - Creat a user with the root permissions - #
usermod -u 0 username

# - How to give a user root privileges: - #
1. Open terminal as root
2. Type “sudo gedit /etc/sudoers"
3. Find the line “root ALL=(ALL) ALL”
4. Under that line copy the “root ALL…”
5. Replace root with your username
	example. “dan ALL=(ALL) ALL”
6. Make sure you don’t remove any lines in that file


# - Instead of adding a line in that file,
    you could uncomment the line that starts with #%admin
    so it looks like %admin ALL=(ALL) ALL
    Then save it, add any users to the admin group 
    to give them admin privileges
    Same thing can be done for the”%sudo” line. - #

# - Create user with non-unique UID - #
useradd -g groupname -o -u UID newusername
ie : useradd -g root -o -u 0 soundar

More:
http://www.cyberciti.biz/faq/howto-change-rename-user-name-id/
http://www.cyberciti.biz/tips/bash-aliases-mac-centos-linux-unix.html
http://websistent.com/change-home-directory-in-linux/
http://www.ubuntututorials.com/change-username-ubuntu-12-04/
http://askubuntu.com/questions/34074/how-do-i-change-my-username
http://bodhizazen.net/Tutorials/Ecryptfs#Live
http://manpages.ubuntu.com/manpages/jaunty/man8/usermod.8.html





