Linux User Creation: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
 
(18 intermediate revisions by the same user not shown)
Line 4: Line 4:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
cat << EXE | sudo bash
cat << EXE | sudo bash
CHORKE_SYS_USERS='activemq artemis hadoop spark keycloak minikube minio wildfly'
SYSTEM_SYS_USERS='activemq artemis hadoop spark keycloak minikube minio wildfly'
for SSH_USER in \${CHORKE_SYS_USERS};do
for SYS_USER in \${SYSTEM_SYS_USERS};do
   if ! id -g \${SSH_USER} &>/dev/null;then addgroup --quiet --system \${SSH_USER};fi
   if ! id -g \${SYS_USER} &>/dev/null;then addgroup --quiet --system \${SYS_USER};fi
   if ! id -u \${SSH_USER} &>/dev/null;then
   if ! id -u \${SYS_USER} &>/dev/null;then
     adduser --quiet --system --ingroup \${SSH_USER} --home /nonexistent --shell /usr/sbin/nologin --disabled-password \${SSH_USER}
     adduser --quiet --system --ingroup \${SYS_USER} --home /nonexistent --shell /usr/sbin/nologin --disabled-password \${SYS_USER}
   fi
   fi
done
done


cat /etc/passwd|awk -F : '\$3 >= 120 && \$3 < 900 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h && echo
echo && cat /etc/passwd|awk -F : '\$3 >= 120 && \$3 < 900 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h
cat /etc/group |awk -F : '\$3 >= 120 && \$3 < 900 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h
echo && cat /etc/group |awk -F : '\$3 >= 120 && \$3 < 900 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h && echo
EXE
EXE
</syntaxhighlight>
</syntaxhighlight>
Line 21: Line 21:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
cat << EXE | sudo bash
cat << EXE | sudo bash
CHORKE_SYS_USERS='academia agronomy assembla aviation commando crafting'
mkdir -p /home/system/
for SSH_USER in \${CHORKE_SYS_USERS};do
SYSTEM_SYS_USERS='activemq artemis hadoop spark keycloak minikube minio wildfly'
   if ! id -g \${SSH_USER} &>/dev/null;then addgroup --quiet --system \${SSH_USER};fi
for SYS_USER in \${SYSTEM_SYS_USERS};do
   if ! id -u \${SSH_USER} &>/dev/null;then
   if ! id -g \${SYS_USER} &>/dev/null;then addgroup --quiet --system \${SYS_USER};fi
     adduser --quiet --system --ingroup \${SSH_USER} --home /home/\${SSH_USER} --shell /bin/bash --disabled-password \${SSH_USER}
   if ! id -u \${SYS_USER} &>/dev/null;then
     mkdir /home/\${SSH_USER}/.ssh && touch /home/\${SSH_USER}/.ssh/authorized_keys
     adduser --quiet --system --ingroup \${SYS_USER} --home /home/system/\${SYS_USER} --shell /bin/bash --disabled-password \${SYS_USER}
    touch /home/\${SSH_USER}/.ssh/config
     chage -m 99999 -M 99999 -E -1 -I -1  \${SYS_USER}


     chown -R \${SSH_USER}:\${SSH_USER} /home/\${SSH_USER}/.ssh
     mkdir /home/system/\${SYS_USER}/.ssh
     chage -m 99999 -M 99999 -E -1 -I -1  \${SSH_USER}
    touch /home/system/\${SYS_USER}/.ssh/config
     chmod 600 /home/\${SSH_USER}/.ssh/authorized_keys
    touch /home/system/\${SYS_USER}/.ssh/authorized_keys
     chmod 600 /home/\${SSH_USER}/.ssh/config
 
     chmod 700 /home/\${SSH_USER}/.ssh
     chown -R \${SYS_USER}:\${SYS_USER} /home/system/\${SYS_USER}/
     chmod 600 /home/system/\${SYS_USER}/.ssh/authorized_keys
     chmod 600 /home/system/\${SYS_USER}/.ssh/config
     chmod 700 /home/system/\${SYS_USER}/.ssh
   fi
   fi
done
done


ls -alh /home/*/.ssh/* && echo
echo && ls -alh /home/system/*/.ssh/*
cat /etc/passwd|awk -F : '\$3 >= 120 && \$3 < 900 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h && echo
echo && cat /etc/passwd|awk -F : '\$3 >= 120 && \$3 < 900 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h
cat /etc/group |awk -F : '\$3 >= 120 && \$3 < 900 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h
echo && cat /etc/group |awk -F : '\$3 >= 120 && \$3 < 900 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h && echo
EXE
EXE
</syntaxhighlight>
</syntaxhighlight>


==General » User==
==DevOps » User==
===General » User » Resident===
===DevOps » User » Resident===
----
----
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
cat << EXE | sudo bash
cat << EXE | sudo bash
CHORKE_EXT_USER='argo.cd drone.ci tool.tech raiyan.shahed shahed.hossain'
mkdir -p /home/devops/
for SSH_USER in \${CHORKE_EXT_USER};do
DEVOPS_EXT_USERS='argo.cd drone.ci tool.tech raiyan.shahed shahed.hossain'
   if ! id -u \${SSH_USER} &>/dev/null;then
for EXT_USER in \${DEVOPS_EXT_USERS};do
     useradd --create-home --home-dir /home/\${SSH_USER} --shell /bin/bash \${SSH_USER}
   if ! id -u \${EXT_USER} &>/dev/null;then
     mkdir /home/\${SSH_USER}/.ssh && touch /home/\${SSH_USER}/.ssh/authorized_keys
     useradd --create-home --home-dir /home/devops/\${EXT_USER} --shell /bin/bash \${EXT_USER}
     touch /home/\${SSH_USER}/.ssh/config
    chage -m 99999 -M 99999 -E -1 -I -1  \${EXT_USER}
 
     mkdir /home/devops/\${EXT_USER}/.ssh
    touch /home/devops/\${EXT_USER}/.ssh/config
    touch /home/devops/\${EXT_USER}/.ssh/authorized_keys
 
    chown -R \${EXT_USER}:\${EXT_USER} /home/devops/\${EXT_USER}/
     chmod 600 /home/devops/\${EXT_USER}/.ssh/authorized_keys
    chmod 600 /home/devops/\${EXT_USER}/.ssh/config
    chmod 700 /home/devops/\${EXT_USER}/.ssh
  fi
done
 
echo && ls -alh /home/devops/*/.ssh/*
echo && cat /etc/passwd|awk -F : '\$3 >= 1000 && \$3 < 65500 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h
echo && cat /etc/group |awk -F : '\$3 >= 1000 && \$3 < 65500 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h && echo
EXE
</syntaxhighlight>
 
===DevOps » User » EdDSA Key===
----
<syntaxhighlight lang="bash">
cat <<'EXT'| sudo bash
DEVOPS_EXT_USERS='argo.cd drone.ci tool.tech raiyan.shahed shahed.hossain'
for EXT_USER in ${DEVOPS_EXT_USERS};do
    if id -u ${EXT_USER} &>/dev/null;then
        cat <<'EXE'| sudo -i -u ${EXT_USER} bash
if [ ! -e "${HOME}/.ssh/id_ed25519" ] && [ ! -e "${HOME}/.ssh/id_ed25519.pub" ];then
    ssh-keygen -t ed25519 -C "${USER}@shahed.biz" -N "" -q  -f ${HOME}/.ssh/id_ed25519
fi
cat ${HOME}/.ssh/id_ed25519.pub
EXE
    fi
done
EXT
</syntaxhighlight>


    chown -R \${SSH_USER}:\${SSH_USER} /home/\${SSH_USER}/.ssh
===DevOps » User » Delete===
    chage -m 99999 -M 99999 -E -1 -I -1  \${SSH_USER}
----
    chmod 600 /home/\${SSH_USER}/.ssh/authorized_keys
<syntaxhighlight lang="bash">
     chmod 600 /home/\${SSH_USER}/.ssh/config
cat << EXE | sudo bash
     chmod 700 /home/\${SSH_USER}/.ssh
DEVOPS_EXT_USERS='ibrahim.sardar abdul.hakim shalina.begum'
for EXT_USER in \${DEVOPS_EXT_USERS};do
  if id -u \${EXT_USER} &>/dev/null;then
     userdel \${EXT_USER}
     rm -r /home/devops/\${EXT_USER}
   fi
   fi
done
done


ls -alh /home/*/.ssh/* && echo
echo && ls -alh /home/devops/
cat /etc/passwd|awk -F : '\$3 >= 1000 && \$3 < 65500 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h && echo
echo && cat /etc/passwd|awk -F : '\$3 >= 1000 && \$3 < 65500 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h
cat /etc/group |awk -F : '\$3 >= 1000 && \$3 < 65500 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h
echo && cat /etc/group |awk -F : '\$3 >= 1000 && \$3 < 65500 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h && echo
EXE
EXE
</syntaxhighlight>
</syntaxhighlight>
Line 71: Line 113:
==Playground==
==Playground==
{|
{|
| valign="top" |
<syntaxhighlight lang="bash">
lxc image list images:ubuntu/noble/desktop
lxc launch --vm images:ffa5fc9dfb84 cloudflare
lxc launch --vm images:ubuntu/noble/desktop cloudflare
</syntaxhighlight>
| colspan="2" |
<syntaxhighlight lang="bash">
lxc list status=running name=cloudflare --format=json |jq  -r '.[].state.network.[].addresses'
lxc list status=running name=cloudflare --format=yaml |yq  -r '.[].state.network.[].addresses'
lxc info cloudflare|yq '.Resources.["Network usage"][]["IP addresses"].inet'
</syntaxhighlight>
|-
| colspan="3" |
----
|-
| valign="top" |
<syntaxhighlight lang="bash">
ls -lah /usr/local/etc/cloudflared/
          ls -lah /etc/cloudflared/
            ls -lah ~/.cloudflared/
</syntaxhighlight>
| colspan="2" |
<syntaxhighlight lang="bash">
lxc snapshot cloudflare argo:24.04
lxc publish  cloudflare/argo:24.04 --alias cloudflare/argo:24.04
lxc restore  cloudflare argo:24.04
</syntaxhighlight>
|-
| colspan="3" |
----
|-
| valign="top" |
| valign="top" |
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Line 150: Line 228:
  useradd -m -d /home/chorke -s /bin/bash chorke
  useradd -m -d /home/chorke -s /bin/bash chorke
  useradd -m -d /home/chorke -s /bin/bash chorke
  useradd -m -d /home/chorke -s /bin/bash chorke
|-
| colspan="3" |
----
|-
| valign="top" colspan="3" |
<syntaxhighlight lang="bash">
adduser --quiet --system --ingroup chorke --no-create-home    --shell /usr/sbin/nologin --disabled-password chorke
adduser --quiet --system --ingroup chorke --home /nonexistent --shell /usr/sbin/nologin --disabled-password chorke
</syntaxhighlight>


|}
|}
Line 160: Line 248:
* [https://unix.stackexchange.com/questions/533663/ Linux » Get users with UID >= 1000]
* [https://unix.stackexchange.com/questions/533663/ Linux » Get users with UID >= 1000]
* [https://manpages.debian.org/bookworm/adduser/adduser.conf.5.en.html Linux » Add User]
* [https://manpages.debian.org/bookworm/adduser/adduser.conf.5.en.html Linux » Add User]
| valign="top" |
| valign="top" |
|-
| colspan="3" |
----
|-
| valign="top" |
* [[Ubuntu/Raspberry Pi]]
* [[Ubuntu Upgrade]]
* [[ActiveMQ]]
* [[Minikube]]
* [[Keycloak]]
* [[Hadoop]]
* [[Jenkins]]
* [[WildFly]]
* [[Spark]]
* [[MinIO]]


| valign="top" |
| valign="top" |

Latest revision as of 13:42, 9 March 2025

System » User

System » User » Homeless


cat << EXE | sudo bash
SYSTEM_SYS_USERS='activemq artemis hadoop spark keycloak minikube minio wildfly'
for SYS_USER in \${SYSTEM_SYS_USERS};do
  if ! id -g \${SYS_USER} &>/dev/null;then addgroup --quiet --system \${SYS_USER};fi
  if ! id -u \${SYS_USER} &>/dev/null;then
    adduser --quiet --system --ingroup \${SYS_USER} --home /nonexistent --shell /usr/sbin/nologin --disabled-password \${SYS_USER}
  fi
done

echo && cat /etc/passwd|awk -F : '\$3 >= 120 && \$3 < 900 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h
echo && cat /etc/group |awk -F : '\$3 >= 120 && \$3 < 900 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h && echo
EXE

System » User » Resident


cat << EXE | sudo bash
mkdir -p /home/system/
SYSTEM_SYS_USERS='activemq artemis hadoop spark keycloak minikube minio wildfly'
for SYS_USER in \${SYSTEM_SYS_USERS};do
  if ! id -g \${SYS_USER} &>/dev/null;then addgroup --quiet --system \${SYS_USER};fi
  if ! id -u \${SYS_USER} &>/dev/null;then
    adduser --quiet --system --ingroup \${SYS_USER} --home /home/system/\${SYS_USER} --shell /bin/bash --disabled-password \${SYS_USER}
    chage -m 99999 -M 99999 -E -1 -I -1  \${SYS_USER}

    mkdir /home/system/\${SYS_USER}/.ssh
    touch /home/system/\${SYS_USER}/.ssh/config
    touch /home/system/\${SYS_USER}/.ssh/authorized_keys

    chown -R \${SYS_USER}:\${SYS_USER} /home/system/\${SYS_USER}/
    chmod 600 /home/system/\${SYS_USER}/.ssh/authorized_keys
    chmod 600 /home/system/\${SYS_USER}/.ssh/config
    chmod 700 /home/system/\${SYS_USER}/.ssh
  fi
done

echo && ls -alh /home/system/*/.ssh/*
echo && cat /etc/passwd|awk -F : '\$3 >= 120 && \$3 < 900 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h
echo && cat /etc/group |awk -F : '\$3 >= 120 && \$3 < 900 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h && echo
EXE

DevOps » User

DevOps » User » Resident


cat << EXE | sudo bash
mkdir -p /home/devops/
DEVOPS_EXT_USERS='argo.cd drone.ci tool.tech raiyan.shahed shahed.hossain'
for EXT_USER in \${DEVOPS_EXT_USERS};do
  if ! id -u \${EXT_USER} &>/dev/null;then
    useradd --create-home --home-dir /home/devops/\${EXT_USER} --shell /bin/bash \${EXT_USER}
    chage -m 99999 -M 99999 -E -1 -I -1  \${EXT_USER}

    mkdir /home/devops/\${EXT_USER}/.ssh
    touch /home/devops/\${EXT_USER}/.ssh/config
    touch /home/devops/\${EXT_USER}/.ssh/authorized_keys

    chown -R \${EXT_USER}:\${EXT_USER} /home/devops/\${EXT_USER}/
    chmod 600 /home/devops/\${EXT_USER}/.ssh/authorized_keys
    chmod 600 /home/devops/\${EXT_USER}/.ssh/config
    chmod 700 /home/devops/\${EXT_USER}/.ssh
  fi
done

echo && ls -alh /home/devops/*/.ssh/*
echo && cat /etc/passwd|awk -F : '\$3 >= 1000 && \$3 < 65500 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h
echo && cat /etc/group |awk -F : '\$3 >= 1000 && \$3 < 65500 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h && echo
EXE

DevOps » User » EdDSA Key


cat <<'EXT'| sudo bash
DEVOPS_EXT_USERS='argo.cd drone.ci tool.tech raiyan.shahed shahed.hossain'
for EXT_USER in ${DEVOPS_EXT_USERS};do
    if id -u ${EXT_USER} &>/dev/null;then
        cat <<'EXE'| sudo -i -u ${EXT_USER} bash
if [ ! -e "${HOME}/.ssh/id_ed25519" ] && [ ! -e "${HOME}/.ssh/id_ed25519.pub" ];then
    ssh-keygen -t ed25519 -C "${USER}@shahed.biz" -N "" -q  -f ${HOME}/.ssh/id_ed25519
fi
cat ${HOME}/.ssh/id_ed25519.pub
EXE
    fi
done
EXT

DevOps » User » Delete


cat << EXE | sudo bash
DEVOPS_EXT_USERS='ibrahim.sardar abdul.hakim shalina.begum'
for EXT_USER in \${DEVOPS_EXT_USERS};do
  if id -u \${EXT_USER} &>/dev/null;then
    userdel \${EXT_USER}
    rm -r /home/devops/\${EXT_USER}
  fi
done

echo && ls -alh /home/devops/
echo && cat /etc/passwd|awk -F : '\$3 >= 1000 && \$3 < 65500 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h
echo && cat /etc/group |awk -F : '\$3 >= 1000 && \$3 < 65500 {printf("%-6s » %s\n", \$3, \$1)}'|sort -h && echo
EXE

Playground

lxc image list images:ubuntu/noble/desktop
lxc launch --vm images:ffa5fc9dfb84 cloudflare
lxc launch --vm images:ubuntu/noble/desktop cloudflare
lxc list status=running name=cloudflare --format=json |jq  -r '.[].state.network.[].addresses'
lxc list status=running name=cloudflare --format=yaml |yq  -r '.[].state.network.[].addresses'
lxc info cloudflare|yq '.Resources.["Network usage"][]["IP addresses"].inet'

ls -lah /usr/local/etc/cloudflared/
          ls -lah /etc/cloudflared/
            ls -lah ~/.cloudflared/
lxc snapshot cloudflare argo:24.04
lxc publish  cloudflare/argo:24.04 --alias cloudflare/argo:24.04
lxc restore  cloudflare argo:24.04

apt list --installed|grep linux-image
systemd-analyze blame
dpkg -l | grep "gnome-shell-extension"

systemctl list-dependencies graphical.target
cat /proc/acpi/wakeup
sudo apt list --installed|grep desktop-icons
sudo dpkg-query -l|grep desktop-icons
sudo apt install gnome-shell-extension-manager
apt info gnome-shell-extension-manager -a

cat <<-'EXE'|sudo bash
umount /var/snap/firefox/common/host-hunspell
snap remove firefox
EXE
cat <<-'EXE'|sudo bash
snap disable remmina
snap remove --purge remmina
EXE
systemctl list-dependencies --type=service --state=running
systemctl list-dependencies --type=service --state=active
systemctl list-dependencies docker.service
systemctl list-dependencies --all

cat /etc/passwd
cat /etc/group
cat /etc/passwd|\
awk -F : '$3 >= 1000 {printf("%-6s » %s\n", $3, $1)}'|sort -h
useradd -m -d /home/chorke -s /bin/bash chorke
useradd -m -d /home/chorke -s /bin/bash chorke

adduser --quiet --system --ingroup chorke --no-create-home    --shell /usr/sbin/nologin --disabled-password chorke
adduser --quiet --system --ingroup chorke --home /nonexistent --shell /usr/sbin/nologin --disabled-password chorke

References