OLD | NEW |
1 #!/bin/bash | 1 #!/bin/bash |
2 | 2 |
3 # Copyright (c) 2009 The Chromium OS Authors. All rights reserved. | 3 # Copyright (c) 2009 The Chromium OS Authors. All rights reserved. |
4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
6 | 6 |
7 # Script to customize the root file system after packages have been installed. | 7 # Script to customize the root file system after packages have been installed. |
8 # | 8 # |
9 # NOTE: This script should be called by build_image.sh. Do not run this | 9 # NOTE: This script should be called by build_image.sh. Do not run this |
10 # on your own unless you know what you are doing. | 10 # on your own unless you know what you are doing. |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 CRYPTED_PASSWD=$(cat $CRYPTED_PASSWD_FILE) | 53 CRYPTED_PASSWD=$(cat $CRYPTED_PASSWD_FILE) |
54 else | 54 else |
55 # Use a random password. unix_md5_crypt will generate a random salt. | 55 # Use a random password. unix_md5_crypt will generate a random salt. |
56 echo "Using random password." | 56 echo "Using random password." |
57 PASSWORD="$(base64 /dev/urandom | head -1)" | 57 PASSWORD="$(base64 /dev/urandom | head -1)" |
58 CRYPTED_PASSWD="$(echo "$PASSWORD" | openssl passwd -1 -stdin)" | 58 CRYPTED_PASSWD="$(echo "$PASSWORD" | openssl passwd -1 -stdin)" |
59 PASSWORD="gone now" | 59 PASSWORD="gone now" |
60 fi | 60 fi |
61 | 61 |
62 # Set up a default user and add to sudo and the required groups. | 62 # Set up a default user and add to sudo and the required groups. |
63 USERNAME="chronos" | 63 ADD_USER="chronos" |
| 64 ADD_GROUPS="audio video" |
64 SHELL="/bin/sh" | 65 SHELL="/bin/sh" |
65 if [[ -x "${ROOT_FS_DIR}/bin/bash" ]] ; then | 66 if [[ -x "${ROOT_FS_DIR}/bin/bash" ]] ; then |
66 SHELL="/bin/bash" | 67 SHELL="/bin/bash" |
67 fi | 68 fi |
68 echo "${USERNAME}:x:1000:1000:${FULLNAME}:/home/${USERNAME}/:${SHELL}" | \ | 69 echo "${ADD_USER}:x:1000:1000:${FULLNAME}:/home/${ADD_USER}/:${SHELL}" | \ |
69 sudo dd of="${ROOT_FS_DIR}/etc/passwd" conv=notrunc oflag=append | 70 sudo dd of="${ROOT_FS_DIR}/etc/passwd" conv=notrunc oflag=append |
70 echo "${USERNAME}:${CRYPTED_PASSWD}:14500:0:99999::::" | \ | 71 echo "${ADD_USER}:${CRYPTED_PASSWD}:14500:0:99999::::" | \ |
71 sudo dd of="${ROOT_FS_DIR}/etc/shadow" conv=notrunc oflag=append | 72 sudo dd of="${ROOT_FS_DIR}/etc/shadow" conv=notrunc oflag=append |
72 echo "${USERNAME}:x:1000:" | \ | 73 echo "${ADD_USER}:x:1000:" | \ |
73 sudo dd of="${ROOT_FS_DIR}/etc/group" conv=notrunc oflag=append | 74 sudo dd of="${ROOT_FS_DIR}/etc/group" conv=notrunc oflag=append |
74 # TODO: Add USERNAME to adm,dialout,cdrom,floppy,audio,dip,video groups? | 75 for i in $ADD_GROUPS; do |
75 sudo mkdir -p "${ROOT_FS_DIR}/home/${USERNAME}" | 76 sudo sed -i "s/^\($i:x:[0-9]*:.*\)/\1,${ADD_USER}/g" \ |
76 sudo chown 1000.1000 "${ROOT_FS_DIR}/home/${USERNAME}" | 77 "${ROOT_FS_DIR}"/etc/group |
| 78 done |
| 79 |
| 80 sudo mkdir -p "${ROOT_FS_DIR}/home/${ADD_USER}" |
| 81 sudo chown 1000.1000 "${ROOT_FS_DIR}/home/${ADD_USER}" |
77 cat <<EOF | sudo dd of="${ROOT_FS_DIR}/etc/sudoers" conv=notrunc oflag=append | 82 cat <<EOF | sudo dd of="${ROOT_FS_DIR}/etc/sudoers" conv=notrunc oflag=append |
78 %adm ALL=(ALL) ALL | 83 %adm ALL=(ALL) ALL |
79 $USERNAME ALL=(ALL) ALL | 84 $ADD_USER ALL=(ALL) ALL |
80 EOF | 85 EOF |
81 sudo chmod 0440 "${ROOT_FS_DIR}/etc/sudoers" | 86 sudo chmod 0440 "${ROOT_FS_DIR}/etc/sudoers" |
82 | 87 |
83 # Set CHROMEOS_VERSION_DESCRIPTION here (uses vars set in chromeos_version.sh) | 88 # Set CHROMEOS_VERSION_DESCRIPTION here (uses vars set in chromeos_version.sh) |
84 # Was removed from chromeos_version.sh which can also be run outside of chroot | 89 # Was removed from chromeos_version.sh which can also be run outside of chroot |
85 # where CHROMEOS_REVISION is set | 90 # where CHROMEOS_REVISION is set |
86 # We have to set (in build_image.sh) and use REAL_USER due to many nested | 91 # We have to set (in build_image.sh) and use REAL_USER due to many nested |
87 # chroots which lose $USER state. | 92 # chroots which lose $USER state. |
88 . "${SCRIPTS_DIR}/chromeos_version.sh" | 93 . "${SCRIPTS_DIR}/chromeos_version.sh" |
89 if [ ${CHROMEOS_OFFICIAL:-0} = 1 ]; then | 94 if [ ${CHROMEOS_OFFICIAL:-0} = 1 ]; then |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 cat <<EOF | sudo dd of="${ROOT_FS_DIR}/etc/network/interfaces" | 246 cat <<EOF | sudo dd of="${ROOT_FS_DIR}/etc/network/interfaces" |
242 auto lo | 247 auto lo |
243 iface lo inet loopback | 248 iface lo inet loopback |
244 EOF | 249 EOF |
245 | 250 |
246 cat <<EOF | sudo dd of="${ROOT_FS_DIR}/etc/resolv.conf" | 251 cat <<EOF | sudo dd of="${ROOT_FS_DIR}/etc/resolv.conf" |
247 # Use the connman dns proxy. | 252 # Use the connman dns proxy. |
248 nameserver 127.0.0.1 | 253 nameserver 127.0.0.1 |
249 EOF | 254 EOF |
250 sudo chmod a-wx "${ROOT_FS_DIR}/etc/resolv.conf" | 255 sudo chmod a-wx "${ROOT_FS_DIR}/etc/resolv.conf" |
OLD | NEW |