[anyterm/f17] Create a home directory for the Anyterm user. Create a known_hosts for localhost. Fix anyterm-cmd.
abo
abo at fedoraproject.org
Sat Jun 2 10:25:51 UTC 2012
commit 0623f982f2a4b406c49da961caebcb5473b735c4
Author: Alexander Boström <abo at root.snowtree.se>
Date: Sat Jun 2 12:22:06 2012 +0200
Create a home directory for the Anyterm user.
Create a known_hosts for localhost.
Fix anyterm-cmd.
anyterm-cmd | 24 +++++++++++++++++++++---
anyterm.spec | 33 +++++++++++++++++++++++++++------
2 files changed, 48 insertions(+), 9 deletions(-)
---
diff --git a/anyterm-cmd b/anyterm-cmd
index 751624f..d20b6e7 100644
--- a/anyterm-cmd
+++ b/anyterm-cmd
@@ -3,14 +3,32 @@
# Simply prompt the user for a username and
# ssh locally as that user
+set -eo pipefail
+
while : ; do
echo -n "Username: "
read U
+ if [[ -z "$U" ]]; then
+ echo "Disconnecting."
+ exit
+ fi
# Make sure it does not start with a "-" and only contains valid
# username characters.
- if [[ "$U" =~ "^[A-Za-z0-9_][A-Za-z0-9_-]*\$" ]]; then
- ssh "$U at localhost"
+ if [[ "$U" =~ ^[A-Za-z0-9_][A-Za-z0-9_-]*$ ]]; then
+ cd ~
+
+ if [[ ! -e .ssh/known_hosts ]]; then
+ mkdir -p --mode=700 .ssh
+ for k in /etc/ssh/ssh_host_{rsa,dsa}_key.pub; do
+ if [[ -r "$k" ]]; then
+ echo -n "localhost.localdomain "
+ cat "$k"
+ fi
+ done >.ssh/known_hosts
+ fi
+
+ ssh -l "$U" localhost.localdomain" || :
else
- echo "Bad username."
+ echo "Bad username."
fi
done
diff --git a/anyterm.spec b/anyterm.spec
index 689259e..5c0dcbc 100644
--- a/anyterm.spec
+++ b/anyterm.spec
@@ -1,6 +1,6 @@
Name: anyterm
Version: 1.1.29
-Release: 11%{?dist}
+Release: 11%{?dist}.1
Summary: A web-based terminal emulator
Group: Applications/Internet
@@ -74,17 +74,31 @@ for f in browser/*.{html,css,js,png,gif}; do
%{__install} -m644 "$f" %{buildroot}%{_datadir}/anyterm/
done
+# Create a home directory for the user.
+%{__mkdir} -p -m755 %{buildroot}%{_localstatedir}/run/%{name}
+mkdir -p %{buildroot}%{_sysconfdir}/tmpfiles.d
+cat <<EOF > %{buildroot}%{_sysconfdir}/tmpfiles.d/%{name}.conf
+d %{_localstatedir}/run/%{name} 0755 root %{name}
+EOF
+
%clean
rm -rf %{buildroot}
%pre
# create anyterm group / user
-getent group anyterm >/dev/null || \
- /usr/sbin/groupadd -r anyterm
-getent passwd anyterm > /dev/null || \
- /usr/sbin/useradd -r -s /sbin/nologin -d /dev/null \
- -M -c 'Anyterm user' -g anyterm anyterm
+getent group %{name} >/dev/null 2>&1 || \
+ groupadd -r %{name}
+getent passwd %{name} >/dev/null 2>&1 || \
+ useradd -r -l -g %{name} -s /sbin/nologin \
+ -d %{_localstatedir}/run/%{name} -c "Anyterm service" %{name}
+if [[ ! -d %{_localstatedir}/run/%{name} ]]; then
+ mkdir -m755 %{_localstatedir}/run/%{name}
+ chown %{name}:%{name} %{_localstatedir}/run/%{name}
+fi
+if [[ $(getent passwd %{name} | cut -d: -f6) == /dev/null ]]; then
+ usermod -d %{_localstatedir}/run/%{name} %{name}
+fi
exit 0
%post
@@ -105,6 +119,8 @@ fi
%{_initrddir}/anyterm
%{_datadir}/anyterm/
%config(noreplace) %{_sysconfdir}/sysconfig/anyterm
+%ghost %attr(0755,%{name},%{name}) %dir %{_localstatedir}/run/%{name}
+%{_sysconfdir}/tmpfiles.d/%{name}.conf
%doc LICENSE
%files httpd
@@ -112,6 +128,11 @@ fi
%config(noreplace) %{_sysconfdir}/httpd/conf.d/anyterm.conf
%changelog
+* Sat Jun 2 2012 Alexander Boström <abo at root.snowtree.se> - 1.1.29-11.1
+- Create a home directory for the Anyterm user.
+- Create a known_hosts for localhost.
+- Fix anyterm-cmd.
+
* Tue Feb 28 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.1.29-11
- Rebuilt for c++ ABI breakage
More information about the scm-commits
mailing list