Hi,
we are upgrading some servers from C6 to C7 with a lot of user accounts on them (UID>=500). CentOS 7 has MIN_UID/MIN_GID 1000, Centos 6 has 500 in login.defs.
Can I change in /etc/login.defs MIN_UID/MIN_GID to 500 for C7? So I could just grep the users out from passwd/shadow/group files and append them to the Centos7 passwd/shadow/group files. Can this do any damage to CentOS7 later on? Thinking about updates....
When I did an upgrade from CentOS 5 to 7 I found that even a standard install of CentOS 7 already used a number of GIDs in the range of 500-999.
In the end I decided to rearrange all users to new UIDs/GIDs and converted all storage with a script.
The tricky part was to find a way which doesn't take ages to convert storage. Doing so with find.... wasn't possible for performance reasons.
Attached script was used to convert every user. It was the fastest way I found. The script was started in background for every user.
Looks like attachments are stripped from the mail, so here is the script embedded:
----%<---- #!/bin/bash
if (( $# < 3 )); then echo "Usage: $0 <username> <new uid> <dir> [<dir>...]" echo "Example: $0 user1 1000 /tmp /etc /usr /opt /var /home" exit 1 fi
USR=$1 NEW_UID=$2 NEW_GID=
shift 2 DIRS=$@
OLD_UID=$(id -u $USR) OLD_GID=$(id -g $USR)
if [[ -z "$NEW_GID" ]]; then NEW_GID=$NEW_UID fi
echo "modifying user $USR ids ${OLD_UID}:${OLD_GID} -> ${NEW_UID}:${NEW_GID} on $DIRS"
# Note: usermod changes ownership of at least $HOME and /var/spool/mail/${USR} groupmod -g $NEW_GID $USR usermod -u $NEW_UID -g $USR $USR
chown --changes --silent --no-dereference --preserve-root --recursive --from=:${OLD_GID} :${NEW_GID} $DIRS chown --changes --silent --no-dereference --preserve-root --recursive --from=${OLD_UID} ${NEW_UID} $DIRS ----%<----